android圖表引擎AchartEngine製作柱圖源碼

來源:互聯網
上載者:User
android圖表引擎AchartEngine製作柱圖源碼 導讀:網上關於AChartEngine繪製柱狀圖的介紹非差稀少,而AchartEngine它本身Api協助文檔寫的非常的簡略,給我們學習帶來很大的不便。所以我在這裡憑藉個人的理解,以一個簡單的柱狀圖的例子來解釋Ach

  廢話不多說 關於android圖表製作引擎AchartEngine的介紹我這裡直接略去 大家想要瞭解它可以直接百度。

  網上關於AChartEngine繪製柱狀圖的介紹非差稀少,而AchartEngine它本身Api協助文檔寫的非常的簡略,給我們學習帶來很大的不便。所以我在這裡憑藉個人的理解,以一個簡單的柱狀圖的例子來解釋AchartEngine繪製柱圖的一個過程,希望會對大家有所協助。

  首先簡略的理解一下AchartEngine的API。

  AchartEngine的提供的Api非常的簡單,其中最重要的兩個概念就是資料設定器(dataset)和所謂的描繪器(renderer)。顧名思義,資料設定器就是為我們提供了一系列對圖表進行值傳入的方法,而描繪器為我們提供了修改圖表外觀的一些方法。

  本例結合簡單的SQLite資料庫表來建立一張柱狀圖

  以下是我們要用到的資料庫表的資訊:

  

  其實待會我們要用到的 只有_name和money兩個欄位,大家只要關注這兩個欄位即可

  首先 我們開啟本機資料庫 得到遊標:

  接下去我們要聲明一個資料設定器 和一個描繪器

  

  其中getBarRenderer()函數是我們自訂的方法,用於初始化描繪器,其方法具體如下:網路編輯必備工具箱,網路編輯之家(www.editorsky.com)榮譽出品

  文章格式化編輯

  繁簡體相互轉換

  文字挑錯功能(1000個錯別字詞庫)

  可定製段前是否空格

  只需滑鼠點擊

  全傻瓜式操作

  文字挑錯執行個體:潔白無暇(潔白無瑕),黃梁美夢(黃粱美夢),美崙美奐(美倫美奐)

view source

print?

01   //描繪器設定
02   public
XYMultipleSeriesRenderer getBarRenderer() {
03   XYMultipleSeriesRenderer renderer =
new XYMultipleSeriesRenderer();
04   //通過SimpleSeriesDenderer設定描繪器的顏色
05   SimpleSeriesRenderer r = new
SimpleSeriesRenderer();
06   r.setColor(Color.RED);
07   renderer.addSeriesRenderer(r);
08   setChartSettings(renderer);//設定描繪器的其他屬性
09   return
renderer; }
10   private
void setChartSettings(XYMultipleSeriesRenderer renderer) {
11   renderer.setChartTitle( "個人收支表"
);//設定柱圖名稱
12   renderer.setXTitle( "名單"
);//設定X軸名稱
13   renderer.setYTitle( "金額"
);//設定Y軸名稱
14   renderer.setXAxisMin(0.5);//設定X軸的最小值為0.5
15   renderer.setXAxisMax(5.5);//設定X軸的最大值為5
16   renderer.setYAxisMin(0);//設定Y軸的最小值為0
17   renderer.setYAxisMax(500);//設定Y軸最大值為500
18   renderer.setDisplayChartValues(true);
//設定是否在柱體上方顯示值
19   renderer.setShowGrid(true);//設定是否在圖表中顯示網格
20   renderer.setXLabels(0);//設定X軸顯示的刻度標籤的個數
21   }
22   

  接下去我們再來看資料設定器  

view source

print?

01   //資料設定
02   private
XYMultipleSeriesDataset getBarDataset(Cursor cur) {
03   XYMultipleSeriesDataset dataset =
new XYMultipleSeriesDataset();
04   CategorySeries series = new
CategorySeries( "本月金額");
05   //聲明一個直條圖
06   //為直條圖添加值
07   while(cur.moveToNext())
08   series.add(cur.getDouble(cur.getColumnIndex("money")));
09   dataset.addSeries(series.toXYSeries());//添加該直條圖到資料設定列表
10   return
dataset; }
11   

  現在我們一張簡單圖表就建立好了,但是我們會發現我們並沒有用到_name這個欄位,所以為了讓X軸上面的刻度標籤顯示為_name這個欄位中的值,我們需要寫這樣一段代碼:  

view source

print?

1   cur.moveToFirst();
2   int
count=1;
3   do{
4   renderer.addTextLabel(count,cur.getString(cur.getColumnIndex("_name)));
5   count++;
6   }while(cur.moveToNext)
7   

  另外需要注意的是  在初始化描繪器的時候一定要加上renderer.setXLabels(0);   現在大功告成 ,我們再為這個Activity添加一個跳轉圖表的Intent就完成了  

view source

print?

1   Intent intent = ChartFactory.getBarChartIntent
2   (this
, dataset, renderer, Type.DEFAULT );
3   

  效果

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.