あなたがあなたの写真に投稿したグラフィックスの種類は、MPAndroidChartを使っては簡単ではありませんが、確かに可能です。
あなたはXAxisRenderer
の独自のサブクラスを記述する必要があります。
ViewPortHandler vph = mChart.getViewPortHandler();
XAxisRenderer xAxisRenderer = new CustomXAxisRenderer(vph, mChart.getXAxis(), vph.getTransformer(AxisDependency.LEFT), image);
mChart.setXAxisRenderer(new CustomXAxisRenderer());
非常に単純な概念実証は次のようになります:
public class CustomXAxisRenderer extends XAxisRenderer {
Bitmap image;
public CustomXAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer transformer, Bitmap image) {
super(viewPortHandler, xAxis, transformer);
this.image = image;
}
@Override
protected void drawLabels(Canvas c, float pos, MPPointF anchor) {
//same code as super class
//then, code to draw the bitmap image on the canvas
//and, code to draw the extra text
}
}
の方法については、以下の回答をご覧ください。ビットマップイメージをスケーリングしてキャンバスに描画する:
How to make a custom image inside bars in MPAndroidChart
How to make a custom highlight drawable in MPAndroidChart
完全なソリューションをお持ちの場合は、ここに回答として投稿してください。がんばろう!コンセプトの証明のための
注:drawLabels
をオーバーライドするには、少しの粗です。より良い解決策は、drawLabels
から別のメソッドを抽出し、それがスーパークラスのdraw(Canvas c)
で呼び出されていることを確認します。その場合は、this answerを参照してください。
XAxisRendererのdrawLabelsを上書きするのはなぜ粗末なのですか? – user3261128
@ user3261128あなたはその方法でラベルを描くのとは別に何かをやっているので、それぞれの方法には1つの責任があると思います –