我开发了一个Android应用程序来显示饼图。我使用achartengine
库来执行此操作。
使用下面的代码,我得到饼图输出,其中3个部分标记为categorySeries中提到的。我想在饼图上显示百分比值。我怎样才能做到这一点?
public static final GraphicalView getPieChartView(Context context,
CategorySeries dataset, DefaultRenderer renderer) {
checkParameters(dataset, renderer);
PieChart chart = new PieChart(dataset, renderer);
return new GraphicalView(context, chart);
}
private static void checkParameters(CategorySeries dataset,
DefaultRenderer renderer) {
if (dataset == null
|| renderer == null
|| dataset.getItemCount() != renderer
.getSeriesRendererCount()) {
throw new IllegalArgumentException(
"Dataset and renderer should be not null and the dataset number of items should be equal to the number of series renderers");
}
}
这是我的onCreate方法
Bundle bundle = getIntent().getExtras();
int highc = bundle.getInt("high");
int lowc = bundle.getInt("low");
int medc = bundle.getInt("medium");
RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativestatsLayout);
TextView message = (TextView) findViewById(R.id.statText);
message.setText("\n\n\tTickets Summary");
message.setGravity(50);
//layout.addView(message);
//setContentView(message);
int[] colors = new int[] { Color.rgb(255, 0, 0),Color.rgb(220, 51,51), Color.rgb(255, 191, 0) };
DefaultRenderer renderer = buildCategoryRenderer(colors);
CategorySeries categorySeries = new CategorySeries("Tickets Chart");
categorySeries.getTitle();
categorySeries.add("critical", highc);
categorySeries.add("major ", medc);
categorySeries.add("minor ", lowc);
layout.addView(getPieChartView(this, categorySeries, renderer));
}
protected DefaultRenderer buildCategoryRenderer(int[] colors) {
DefaultRenderer renderer = new DefaultRenderer();
for (int color : colors) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(color);
renderer.addSeriesRenderer(r);
}
return renderer;
}
答案 0 :(得分:2)
可以使用achartengine。我遇到了同样的问题,现在找到了答案。 使用1.1.0-rc2版本的achart引擎。您可以在此处下载:http://www.achartengine.org/download/
本教程(http://wptrafficanalyzer.in/blog/android-drawing-pie-chart-using-achartengine/)可帮助您使用achartengine创建饼图。
将此行添加到您的代码中以显示饼图中的分布百分比
defaultRenderer.setDisplayValues(true);
答案 1 :(得分:1)
我不确定你是否还有这个问题。但是如果你的饼图非常简单,你应该考虑把它画成你自己而不是使用它的库。 这可能会有所帮助。