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

左云網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,左云網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為左云近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的左云做網(wǎng)站的公司定做!

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包,根據(jù)所需進行下載:

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

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

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

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

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

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

3:下面創(chuàng)建一個AChart接口

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

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

最后主函數(shù)直接

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

Android中圖表AChartEngine學習使用與例子
上面的注釋已經(jīng)寫的比較清楚了?;臼强梢悦靼椎?。更多圖表的例子可以在http://code.google.com/p/achartengine/中下載demo