很多時候項目中我們需要對一些統計數據進行繪制表格,更多直觀查看報表分析結果。基本有以下幾種方法:

1:可以進行android  api進行draw這樣的話,效率比較低

2:使用開源繪表引擎,這樣效率比較高.下面就介紹一種。

AChartEngine(簡稱ACE)是Google的一個開源圖表庫(for Android)。它功能強大,支持散點圖、折線圖、餅圖、氣泡圖、柱狀圖、短棒圖、儀表圖等多種圖表。

該項目地址位于: http://code.google.com/p/achartengine/

你可以選擇合適的版本下載,每個版本都有一個jar包、實例源代碼和java doc提供下載。當前最新版本為1.1.0。

Android中圖表AChartEngine學習使用與例子 Android中圖表AChartEngine學習使用與例子 

上面是兩幅用該引擎繪制出來的圖標例子.

Android中圖表AChartEngine學習使用與例子

如上圖所示:可以有demo源代碼,文檔和jar包,根據所需進行下載:

下面稍微演示一下生成一個樹狀圖:

1:新建項目,把jar引入進去

Android中圖表AChartEngine學習使用與例子

2:在Androidmanifest.xml文件中進行配置文件

 <activity android:name="org.achartengine.GraphicalActivity" />

因為接下來要考這個Activity進行顯示圖表

3:下面創建一個AChart接口

public interface AChartAbstract { 	 	/** 	 * 獲取一個當前類型圖標的Intent實例 	 */ 	public Intent getIntent(Context context); }
4:創建BarChart.java進行準備數據源和引擎設置

public class BarChart implements AChartAbstract {  	public Intent getIntent(Context context) { 		Intent mIntent=ChartFactory.getBarChartIntent(context, getDataSet(), getRenderer(), Type.STACKED, "當月開票金額樹狀圖"); 		return mIntent; 	}  	/** 	 * 構造數據 	 * @return 	 */ 	public XYMultipleSeriesDataset getDataSet() { 		// 構造數據 		XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset(); 		CategorySeries barSeries = new CategorySeries("2014年3月"); 		barSeries.add(865.5969); 		barSeries.add(2492.6479); 		barSeries.add(891.0137); 		barSeries.add(0.0); 		barSeries.add(691.0568); 		barDataset.addSeries(barSeries.toXYSeries()); 		return barDataset; 	}  	/** 	 * 構造渲染器 	 * @return 	 */ 	public XYMultipleSeriesRenderer getRenderer() { 		XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); //		renderer.setChartTitle("當月開票"); //		// 設置標題的字體大小 //		renderer.setChartTitleTextSize(16); 		renderer.setXTitle("事業部"); 		renderer.setYTitle("單位(萬元)"); 		renderer.setAxesColor(Color.WHITE); 		renderer.setLabelsColor(Color.WHITE); 		// 設置X軸的最小數字和最大數字 		renderer.setXAxisMin(0.5); 		renderer.setXAxisMax(5.5); 		// 設置Y軸的最小數字和最大數字 		renderer.setYAxisMin(0); 		renderer.setYAxisMax(3000); 		renderer.addXTextLabel(1, "電網"); 		renderer.addXTextLabel(2, "通信"); 		renderer.addXTextLabel(3, "寬帶"); 		renderer.addXTextLabel(4, "專網"); 		renderer.addXTextLabel(5, "軌交"); 		renderer.setZoomButtonsVisible(true); 		// 設置渲染器允許放大縮小 		renderer.setZoomEnabled(true); 		// 消除鋸齒 		renderer.setAntialiasing(true); 		// 設置背景顏色 		renderer.setApplyBackgroundColor(true); 		renderer.setBackgroundColor(Color.GRAY); 		// 設置每條柱子的顏色 		SimpleSeriesRenderer sr = new SimpleSeriesRenderer(); 		sr.setColor(Color.YELLOW); 		renderer.addSeriesRenderer(sr); 		// 設置每個柱子上是否顯示數值 		renderer.getSeriesRendererAt(0).setDisplayChartValues(true); 		// X軸的近似坐標數  (這樣不顯示橫坐標) 		renderer.setXLabels(0); 		// Y軸的近似坐標數 		renderer.setYLabels(6); 		// 刻度線與X軸坐標文字左側對齊 		renderer.setXLabelsAlign(Align.LEFT); 		// Y軸與Y軸坐標文字左對齊 		renderer.setYLabelsAlign(Align.LEFT); 		// 允許左右拖動,但不允許上下拖動. 		renderer.setPanEnabled(true, false); 		// 柱子間寬度 		renderer.setBarSpacing(0.5f); 		// 設置X,Y軸單位的字體大小 		renderer.setAxisTitleTextSize(20); 		return renderer; 	}

最后主函數直接

Intent lineIntent = new BarChart().getIntent(this); 			startActivity(lineIntent);
直接啟動Androidmanifest.xml已經配置的activity就可以顯示樹狀圖了。

Android中圖表AChartEngine學習使用與例子
上面的注釋已經寫的比較清楚了。基本是可以明白的。更多圖表的例子可以在http://code.google.com/p/achartengine/中下載demo