本文继续上文(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包画数据统计图过程中,官网上提供的demo和javadoc帮助非常大!!