LimitLine 旁边的 mpandroidchart 注释?
mpandroidchart annotation beside LimitLine?
我正在使用 mpandroidchart 创建折线图,我需要放置两个标签来指示最大值和最小值。除了 LimitLine 之外,还有另一种可能的方法可以将标签添加到绘图上的特定位置吗?有时 LimitLine 与图中的线条重叠。有没有办法在线下设置 Min 标签?看来 LimitLabelPosition 目前只提供 LEFT 和 RIGHT。
感谢 mpandroidchart,这是一个非常棒的 android 图表库。
只是回答我自己的问题。 (仅适用于MPAndroidChart-1.7.4)
在LimitLine.java中,我修改了:
/** indicates the position of the LimitLine label */
private LimitLabelPosition mLabelPosition = LimitLabelPosition.RIGHT_TOP;
/** enum that indicates the position of the LimitLine label */
public enum LimitLabelPosition {
LEFT_TOP, RIGHT_TOP, LEFT_BOTTOM, RIGHT_BOTTOM
}
而在 BarLineChartBase.java 中,我更改了:
if (l.getLabelPosition() == LimitLabelPosition.RIGHT_TOP) {
mValuePaint.setTextAlign(Align.RIGHT);
mDrawCanvas.drawText(label, getWidth() - mOffsetRight
- xOffset,
pos.y - yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.LEFT_TOP) {
mValuePaint.setTextAlign(Align.LEFT);
mDrawCanvas.drawText(label, mOffsetLeft
+ xOffset,
pos.y - yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.RIGHT_BOTTOM) {
mValuePaint.setTextAlign(Align.RIGHT);
mDrawCanvas.drawText(label, getWidth() - mOffsetRight
- xOffset,
pos.y + yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.LEFT_BOTTOM) {
mValuePaint.setTextAlign(Align.LEFT);
mDrawCanvas.drawText(label, mOffsetLeft
+ xOffset,
pos.y + yOffset, mValuePaint);
}
上面的代码帮我把标签放在了线下。
再次感谢 Philipp Jahoda 提供这个很棒的 android 库。
我正在使用 mpandroidchart 创建折线图,我需要放置两个标签来指示最大值和最小值。除了 LimitLine 之外,还有另一种可能的方法可以将标签添加到绘图上的特定位置吗?有时 LimitLine 与图中的线条重叠。有没有办法在线下设置 Min 标签?看来 LimitLabelPosition 目前只提供 LEFT 和 RIGHT。
感谢 mpandroidchart,这是一个非常棒的 android 图表库。
只是回答我自己的问题。 (仅适用于MPAndroidChart-1.7.4)
在LimitLine.java中,我修改了:
/** indicates the position of the LimitLine label */
private LimitLabelPosition mLabelPosition = LimitLabelPosition.RIGHT_TOP;
/** enum that indicates the position of the LimitLine label */
public enum LimitLabelPosition {
LEFT_TOP, RIGHT_TOP, LEFT_BOTTOM, RIGHT_BOTTOM
}
而在 BarLineChartBase.java 中,我更改了:
if (l.getLabelPosition() == LimitLabelPosition.RIGHT_TOP) {
mValuePaint.setTextAlign(Align.RIGHT);
mDrawCanvas.drawText(label, getWidth() - mOffsetRight
- xOffset,
pos.y - yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.LEFT_TOP) {
mValuePaint.setTextAlign(Align.LEFT);
mDrawCanvas.drawText(label, mOffsetLeft
+ xOffset,
pos.y - yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.RIGHT_BOTTOM) {
mValuePaint.setTextAlign(Align.RIGHT);
mDrawCanvas.drawText(label, getWidth() - mOffsetRight
- xOffset,
pos.y + yOffset, mValuePaint);
} else if (l.getLabelPosition() == LimitLabelPosition.LEFT_BOTTOM) {
mValuePaint.setTextAlign(Align.LEFT);
mDrawCanvas.drawText(label, mOffsetLeft
+ xOffset,
pos.y + yOffset, mValuePaint);
}
上面的代码帮我把标签放在了线下。
再次感谢 Philipp Jahoda 提供这个很棒的 android 库。