很多時候項目中我們需要對一些統(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)。它功能強大,支持散點圖、折線圖、餅圖、氣泡圖、柱狀圖、短棒圖、儀表圖等多種圖表。
你可以選擇合適的版本下載,每個版本都有一個jar包、實例源代碼和java doc提供下載。當前最新版本為1.1.0。
上面是兩幅用該引擎繪制出來的圖標例子.
如上圖所示:可以有demo源代碼,文檔和jar包,根據(jù)所需進行下載:
下面稍微演示一下生成一個樹狀圖:
1:新建項目,把jar引入進去
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就可以顯示樹狀圖了。
上面的注釋已經(jīng)寫的比較清楚了?;臼强梢悦靼椎?。更多圖表的例子可以在http://code.google.com/p/achartengine/中下載demo