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()); } } }