1

mpandroidchart を使用して折れ線グラフを作成していますが、最大値と最小値を示す 2 つのラベルを付ける必要があります。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);

}

上記のコードは、ラベルを行の下に置くのに役立ちます。

この素晴らしい Android ライブラリを再び提供してくれた Philipp Jahoda に感謝します。

于 2015-01-09T15:54:22.467 に答える