1

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

感谢 mpandroidchart,这是一个非常棒的 android 图表库。

4

1 回答 1

1

只是为了回答我自己的问题。(仅适用于 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 库。

于 2015-01-09T15:54:22.467 回答