我正在使用MPAndroidChart库创建条形图。
我们可以使用以下内容在条形上方显示条形值。
mChart.setDrawValueAboveBar(false);
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用这个:
barDataSet.setDrawValues(true);
Run Code Online (Sandbox Code Playgroud)
在条形图本身中显示条形图值。我想知道是否可以为这些值设置自定义位置。例如在y轴下方。
解
public class TextBarChartRenderer extends BarChartRenderer {
public TextBarChartRenderer(BarDataProvider chart, ChartAnimator animator, ViewPortHandler viewPortHandler) {
super(chart, animator, viewPortHandler);
}
@Override
public void drawValues(Canvas c) {
List<IBarDataSet> dataSets = mChart.getBarData().getDataSets();
final float valueOffsetPlus = Utils.convertDpToPixel(22f)
float negOffset;
for (int i = 0; i < mChart.getBarData().getDataSetCount(); i++) {
IBarDataSet dataSet = dataSets.get(i);
applyValueTextStyle(dataSet);
float valueTextHeight = Utils.calcTextHeight(mValuePaint, "8");
negOffset = valueTextHeight + valueOffsetPlus;
BarBuffer buffer = mBarBuffers[i];
float left;
float right;
float top;
float …Run Code Online (Sandbox Code Playgroud) 我正在使用库MPAndroidChart但它没有开箱即用的所有功能.
我听说可以通过编写自定义渲染器来实现我想要的功能.
我查看了MPAndroidChart GitHub仓库中渲染器的源代码,但我无法理解所涉及的概念.
MPAndroidChart渲染器如何工作?
编写自定义渲染器的高级过程是什么?
注意:对于在mpandroidchart上发布的许多问题,解决方案是实现某种自定义渲染器.如果没有指南,对"你可以通过编写自定义渲染器来解决这个问题"这样的问题的评论是不满意的.编写包含完整解决方案的答案可能非常耗时.没有现成的编写自定义渲染器的指南,希望这个问题可以作为提问者能够帮助自己的实用工具,如果不是重复的目标.虽然我在这里尝试了自己的答案,但欢迎其他答案,更正和评论.
我创建了一个LineChart使用库 MPAndroidChart 并且一切正常。
现在我想要做的是为图表上的每个条目显示一个可绘制的(图像)而不是默认的圆圈。
我从 API 中尝试了很多选项,但没有运气。
谁能告诉我我该怎么做?