LimitLine旁边的mpandroidchart注释?

时间:2015-01-06 15:02:59

标签: android mpandroidchart

我使用mpandroidchart创建折线图,我需要放两个标签来表示最大值和最小值。除了LimitLine之外,还有另一种方法可以将标签添加到绘图上的特定位置吗?有时,LimitLine与图中的线重叠。有没有办法在线下设置Min标签?看来LimitLabelPosition现在只提供LEFT和RIGHT。

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

1 个答案:

答案 0 :(得分: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库。