应用achartengine包画数据统计图之二————画PieChart(饼图)

本文继续上文(http://www.cnblogs.com/water-drop/archive/2012/11/01/2750379.html)的思路,画另一种常用图形——饼图(PieChart)


画PieChart与TimeChart的不同之处在于:

1.PieChart使用的数据集CategorySeries,而TimeChart使用的是XYMultipleSeriesDataset;

2.PieChart使用的图表设置集(render)DefaultRenderer,而TimeChart使用的是XYMultipleSeriesRenderer.

针对以上两点,有下面两段代码

1.PieChart构造数据集代码

values[]数组中储存了每部分饼图的数据,最终每部分占总数的百分比决定了饼图的最终形状。

1 protected CategorySeries buildCategoryDataset(String title, double[] values) {
2             CategorySeries series = new CategorySeries(title);
3             series.add("差", values[0]);
4             series.add("不达标", values[1]);
5             series.add("达标", values[2]);
6             return series;
7           }

2.PieChart的图表设置代码

 1 protected DefaultRenderer buildCategoryRenderer(int[] colors) {
 2             DefaultRenderer renderer = new DefaultRenderer();
 3             renderer.setLabelsTextSize(15);
 4             renderer.setLegendTextSize(15);
 5             renderer.setMargins(new int[] { 20, 30, 15, 0 });
 6             for (int color : colors) {
 7               SimpleSeriesRenderer r = new SimpleSeriesRenderer();
 8               r.setColor(color);
 9               renderer.addSeriesRenderer(r);
10             }
11             return renderer;
12           }

3.画饼图代码

private GraphicalView mPieChartView;
private LinearLayout layoutpie;
private double[] pievalues;
private DefaultRenderer pierender;

mPieChartView=ChartFactory.getPieChartView(this, buildCategoryDataset("xueyactrl", pievalues), pierender);
layoutpie.removeAllViews();
layoutpie.setBackgroundColor(Color.BLACK);
        layoutpie.addView(mPieChartView, new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.FILL_PARENT));
        

下面是截图

应用achartengine包画数据统计图之二————画PieChart(饼图)_第1张图片

以上完成了图形的基本功能,还有很多图形设置可以探索~

最后,在学习使用achartengine包画数据统计图过程中,官网上提供的demo和javadoc帮助非常大!!

 

 

 

 

你可能感兴趣的:(应用achartengine包画数据统计图之二————画PieChart(饼图))