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?
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); //設定描繪器的其他屬性
|
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軸顯示的刻度標籤的個數
|
接下去我們再來看資料設定器
view source
print?
02 |
private
XYMultipleSeriesDataset getBarDataset(Cursor cur) { |
03 |
XYMultipleSeriesDataset dataset =
new XYMultipleSeriesDataset();
|
04 |
CategorySeries series = new
CategorySeries( "本月金額" );
|
07 |
while (cur.moveToNext())
|
08 |
series.add(cur.getDouble(cur.getColumnIndex( "money" )));
|
09 |
dataset.addSeries(series.toXYSeries()); //添加該直條圖到資料設定列表
|
現在我們一張簡單圖表就建立好了,但是我們會發現我們並沒有用到_name這個欄位,所以為了讓X軸上面的刻度標籤顯示為_name這個欄位中的值,我們需要寫這樣一段代碼:
view source
print?
4 |
renderer.addTextLabel(count,cur.getString(cur.getColumnIndex("_name)));
|
另外需要注意的是 在初始化描繪器的時候一定要加上renderer.setXLabels(0); 現在大功告成 ,我們再為這個Activity添加一個跳轉圖表的Intent就完成了
view source
print?
1 |
Intent intent = ChartFactory.getBarChartIntent
|
2 |
( this
, dataset, renderer, Type.DEFAULT ); |
效果