使用 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。