【问题标题】:Pie Chart: how to display text just on some pie slices using AChartEngine Android library?饼图:如何使用 AChartEngine Android 库仅在一些饼图上显示文本?
【发布时间】:2014-02-07 08:17:46
【问题描述】:

我正在使用 AChartEngine (http://code.google.com/p/achartengine/) 库在 Android 应用中显示饼图。

饼图可以有很多幻灯片。我只想在一些饼图上显示这些值,但我无法让它工作(我什至不确定它是否可能)。

对于我制作的DefaultRenderer

renderer.setLabelsColor(Color.BLACK);  // color of the text displayed on the chart
renderer.setLabelsTextSize(12); // size of the text displayed on the chart

对于每个SimpleSeriesRenderer

if (pieSlidesNo > 5) {
    serieRender.setDisplayChartValues(false);
} else {
    serieRender.setDisplayChartValues(true);
}

但不工作 - 值显示在每个饼图上。 我想要的如下图所示(这些值仅显示在第一个切片上,而不是全部显示)。

【问题讨论】:

  • 对不起。你能告诉我你是如何在饼图切片上设置“%”的吗???我也在使用 achartengine 库,我正在尝试找出如何做到这一点......谢谢!
  • 您好 user3019105,上面的图片不是使用lib渲染的,来自互联网。我想如果不修改库,您将无法制作您想要的东西,因为series 接受一个双精度值作为参数,您也不能在那里传递% 符号。
  • 谢谢。所以甚至没有办法使用系列为饼图设置边框颜色?
  • 据我所知,没有。
  • 好的,谢谢您的回复!

标签: android charts achartengine pie-chart


【解决方案1】:

为此,您必须更改库源。

更改draw()PieChart.java 并使用renderer.setDisplayValues(true);DefaultRenderer

 if (mRenderer.isDisplayValues()) {
        if(angle<60)
        {}
        else
        drawLabel(
            canvas,
            getLabel(mRenderer.getSeriesRendererAt(i).getChartValuesFormat(), mDataset.getValue(i)),
            mRenderer, prevLabelsBounds, mCenterX, mCenterY, shortRadius / 2, longRadius / 2,
            currentAngle, angle, left, right, mRenderer.getLabelsColor(), paint, false, true);
      }

您可以根据您的要求更改角度比较值(angle&lt;60)

【讨论】:

  • 我会尽快尝试的。我的想法是我现在正在使用 jar 文件,在这种情况下,我需要获取源代码并重新编译它。我会让你知道它是否有效。谢谢。
  • 我在SimpleSeriesRenderer bean 类中添加了 2 个boolean 变量:displayValueOnSlice(布尔值表示我们是否需要在饼图上显示值)和displayValueBesideSlice(布尔值表示如果我们需要在饼图旁边显示值)并且在PieChart.java 上,我已更改为根据这些值显示信息。从我的应用程序中,根据不同的标准,我决定是在true 还是false 上设置这两个值。谢谢你的想法,很有帮助,所以我会接受你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-22
  • 2021-03-15
相关资源
最近更新 更多