XAxis上的MP Android图表“表格”(XAxis的自定义渲染器)

时间:2017-03-10 21:30:08

标签: android xamarin.android mpandroidchart

您好我不知道使用MP Android Chart是否可以使用这种图形:

enter image description here

我真正需要的是使用其他几个UI组件(在本例中为4个TextViews和一个ImageView)自定义整个XAxis。

我一直在尝试不同的解决方案,例如在其单元格中使用带有BarChart的RecyclerView,但我没有实现高效的用户界面:

enter image description here

我还试图在Chart下面添加一个ListView,但我无法根据图表同步和订购ListView单元格。

任何想法?

1 个答案:

答案 0 :(得分:1)

使用MPAndroidChart,你在图片中发布的图片类型肯定是可能的,虽然并不容易。

您必须编写自己的GIT_WORK_TREE=/.invalid/work/tree && export GIT_WORK_TREE && git rev-parse # dies with error code 128 子类:

XAxisRenderer

一个非常简单的概念验证看起来像这样:

ViewPortHandler vph = mChart.getViewPortHandler();
XAxisRenderer xAxisRenderer = new CustomXAxisRenderer(vph, mChart.getXAxis(), vph.getTransformer(AxisDependency.LEFT), image);
mChart.setXAxisRenderer(new CustomXAxisRenderer());

请参阅以下答案,了解如何缩放位图图像并在画布上绘制它们:

How to make a custom image inside bars in MPAndroidChart

How to make a custom highlight drawable in MPAndroidChart

如果您有完整的解决方案,欢迎您在此处发布答案。祝你好运!

注意概念验证:重写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 } } 有点粗糙。一个更好的解决方案是从drawLabels中提取一个单独的方法,并确保在超类的drawLabels中调用它。如果您愿意,请参阅this answer