由於項目需要,要用到圖表顯示,所以就上網查找了些資料,就找到了下面一張圖,以及幾個概念:
從圖中可以看出,繪制一個圖表,需要理解三個概念
1、ChartFactory
傳入Renderer,Dataset的參數,然后用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset)方法進行圖表的顯示
2、XYMutilpleSeriesRenderer
用於進行繪制的設置,添加的Renderer對象,用於定義繪制的點集合設置,注意數量要和Dataset添加的XYseries一致!!!
3、XYMutilpleSeriesDataset
用於數據的存放,添加的XYseries對象,用於提供繪制的點集合的數據
下面是我學習之后的總結:
說白了,就三個東西,一個Intent,一個Renderer和一個Dataset。
Intent 就是要啟動一個GraphicalActivity來顯示圖表用的,這個GraphicalActivity需要在manifest注冊!
一般由 ChartFactory.get***ChartIntent獲得,如下:
ChartFactory.getBarChartIntent(context, getBarDataset(),renderer, Type.DEFAULT);
Renderer 就是渲染器,設置圖表顯示的一些特征,比如圖表的大小,標題,坐標軸的顏色,背景顏色等
DefaultRenderer renderer = new DefaultRenderer(); renderer.setBackgroundColor(Color.GRAY);// 背景顏色 renderer.setLabelsTextSize(25);// 標簽文字大小 renderer.setChartTitle("手機系統");// 圖表名稱 renderer.setChartTitleTextSize(30);// 圖表名稱大小 renderer.setLegendTextSize(30);// 圖標字體大小 renderer.setLegendHeight(100);// 圖標文字距離底邊的高度 renderer.setPanEnabled(false);//圖表是否可以移動 renderer.setZoomEnabled(true);//圖表是否可以縮放
Dataset 就是數據集,就是你自己要制作表的數據集
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); double[] data1 = { 19, 23, 23, 42, 25, 25, 17, 28, 39 }; double[] data2 = { 39, 43, 13, 12, 15, 35, 37, 18, 19 }; for (int i = 0; i < 2; i++) { CategorySeries series = new CategorySeries("測試數據" + (i + 1)); if (i == 0) { for (int j = 0; j < data1.length; j++) { series.add(data1[j]); } } else { for (int j = 0; j < data2.length; j++) { series.add(data2[j]); } } dataset.addSeries(series.toXYSeries()); }
源碼附上:點擊下載ShowChart.zip