android圖表引擎AchartEngine制作柱圖


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

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

 

首先簡略的理解一下AchartEngineAPI

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

 

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

 

以下是我們要用到的數據庫表的信息:

其實待會我們要用到的 只有_namemoney兩個字段,大家只要關注這兩個字段即可

首先 我們打開本地數據庫 得到游標:

接下去我們要聲明一個數據設置器 和一個描繪器

其中getBarRenderer()函數是我們自定義的方法,用於初始化描繪器,其方法具體如下:

 

//描繪器設置
 
    public XYMultipleSeriesRenderer getBarRenderer() {
 
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
 
                    
 
//通過SimpleSeriesDenderer設置描繪器的顏色
 
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
 
        r.setColor(Color.RED);
 
        renderer.addSeriesRenderer(r);
 
setChartSettings(renderer);//設置描繪器的其他屬性
 
return renderer;     }    
   private void setChartSettings(XYMultipleSeriesRenderer renderer) {
 
   renderer.setChartTitle( "個人收支表" );//設置柱圖名稱
 
        renderer.setXTitle( "名單" );//設置X軸名稱
 
        renderer.setYTitle( "金額" );//設置Y軸名稱
 
        renderer.setXAxisMin(0.5);//設置X軸的最小值為0.5
 
        renderer.setXAxisMax(5.5);//設置X軸的最大值為5
 
        renderer.setYAxisMin(0);//設置Y軸的最小值為0
 
        renderer.setYAxisMax(500);//設置Y軸最大值為500
 
        renderer.setDisplayChartValues(true);  //設置是否在柱體上方顯示值
 
        renderer.setShowGrid(true);//設置是否在圖表中顯示網格
 
        renderer.setXLabels(0);//設置X軸顯示的刻度標簽的個數        
 
        
 
       }
 

接下去我們再來看數據設置器

 

  //數據設置
 
    private XYMultipleSeriesDataset getBarDataset(Cursor cur) {
 
     
 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
 
        
 
    CategorySeries series = new CategorySeries( "本月金額"); 
    //聲明一個柱形圖       
     //為柱形圖添加值
 
        while(cur.moveToNext())
 
        series.add(cur.getDouble(cur.getColumnIndex("money")));
 
        
 
       dataset.addSeries(series.toXYSeries());//添加該柱形圖到數據設置列表
 
           
 
        return dataset;     }

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

cur.moveToFirst();
 
int count=1;
 
do{
 
renderer.addTextLabel(count,cur.getString(cur.getColumnIndex("_name)));
 
count++;
 
}while(cur.moveToNext)
 

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

 

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

效果如圖:

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM