我正在使用 mpandroidchart 创建折线图,我需要放置两个标签来指示 Max 和 Min。除了 LimitLine,还有另一种可能的方法可以将标签添加到绘图上的特定位置吗?有时,LimitLine 与图中的线重叠。有没有办法在行下设置 Min 标签?似乎 LimitLabelPosition 目前只提供 LEFT 和 RIGHT。
感谢 mpandroidchart,这是一个非常棒的 android 图表库。
我正在使用 mpandroidchart 创建折线图,我需要放置两个标签来指示 Max 和 Min。除了 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 库。