android 用Achartengine 作圖


Achartengine 是google的一個開源圖標庫。支持多種圖標,如折線圖、氣泡圖、餅狀圖等等。 (http://code.google.com/p/achartengine/

 

它的用法也很簡單,今天在網上看了一個人的小結(http://www.cnblogs.com/hanyonglu/archive/2012/02/20/2360334.html),於是自己也學着試了一下。

簡單的說,調用 ChartFactory 的get***()函數就能得到一個圖表,以餅狀圖為例,ChartFactory.getPieChartIntent(android.content.Context context, CategorySeries dataset, DefaultRenderer renderer, java.lang.String activityTitle)可以返回一個圖表的Intent, 至於圖表的內容是什么,就需要在dataset 和renderer中布置。

 

dataset 里面是你的基本統計數據,例如每種元素的名稱(string)和數量(double)。 Achartengine 根據每種成分的數量統計其所占百分比。

renderer 指明了圖的樣式, 例如每個元素的顏色,標題的大小,背景顏色等等。

具體怎么設置,可以從官方的API里面查找。

然后要記得修改AndroidManifest.xml:

加入一個<activity>:

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

 

附上源碼一份:

AChartExample.java

 1 package test.chart.Achartengine;
2
3 import org.achartengine.ChartFactory;
4 import org.achartengine.model.CategorySeries;
5 import org.achartengine.renderer.DefaultRenderer;
6 import org.achartengine.renderer.SimpleSeriesRenderer;
7
8 import android.content.Context;
9 import android.content.Intent;
10 import android.graphics.Color;
11
12 public class AChartExample {
13
14 private double[] value = {22,22,22};
15
16 public AChartExample(){
17 value[0]= 1;
18 value[1]=2;
19 value[2] = 3;
20 }
21
22 public AChartExample(double values[]){
23 for (int i=0;i<values.length;i++){
24 value[i] = values[i];
25 }
26 }
27
28 public Intent execute(Context context) {
29 int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE };
30 DefaultRenderer renderer = buildCategoryRenderer(colors);
31 CategorySeries categorySeries = new CategorySeries("Vehicles Chart");
32 categorySeries.add("cars ", value[0]);
33 categorySeries.add("trucks", value[1]);
34 categorySeries.add("bikes ", value[2]);
35 return ChartFactory.getPieChartIntent(context, categorySeries, renderer,"jialia");
36 }
37
38 protected DefaultRenderer buildCategoryRenderer(int[] colors) {
39 DefaultRenderer renderer = new DefaultRenderer();
40 renderer.setBackgroundColor(Color.GRAY);
41 renderer.setApplyBackgroundColor(true);
42 renderer.setLabelsTextSize(20);
43 renderer.setChartTitle("pie chart");
44 renderer.setChartTitleTextSize(30);
45 renderer.setLegendTextSize(30);
46 renderer.setLegendHeight(50);
47 for (int color : colors) {
48 SimpleSeriesRenderer r = new SimpleSeriesRenderer();
49 r.setColor(color);
50 renderer.addSeriesRenderer(r);
51 }
52 return renderer;
53 }
54 }

Achartengine.java:

package test.chart.Achartengine;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class Achartengine extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try{
        Intent achartIntent = new AChartExample(new double[]{3,2,1}).execute(this);
    	startActivity(achartIntent);
        }catch (Exception e){
        	
        	Log.d("oncreate",e.getMessage());
        }
    }
}

  





免責聲明!

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



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