本文繼續上文(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幫助非常大!!