gpt4 book ai didi

android - XAxis 上的 MP Android 图表 "Table"(XAxis 的自定义渲染器)

转载 作者:行者123 更新时间:2023-11-30 00:39:44 24 4
gpt4 key购买 nike

你好,我想知道这种图形是否可以使用 MP Android Chart:

enter image description here

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

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

enter image description here

我还尝试在图表下方添加一个 ListView,但我无法根据图表同步和排序 ListView 单元格。

有什么想法吗?

最佳答案

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

关于如何缩放位图图像并在 Canvas 上绘制它们,请参阅以下答案:

How to make a custom image inside bars in MPAndroidChart

How to make a custom highlight drawable in MPAndroidChart

当您有完整的解决方案时,欢迎您将其张贴在这里作为答案。祝你好运!

概念验证注意事项:重写 drawLabels 有点粗糙。更好的解决方案是从 drawLabels 中提取一个单独的方法,并确保它在父类(super class)的 draw(Canvas c) 中被调用。参见 this answer如果你想这样做。

关于android - XAxis 上的 MP Android 图表 "Table"(XAxis 的自定义渲染器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com