zoukankan      html  css  js  c++  java
  • 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());
            }
        }
    }
    

      




  • 相关阅读:
    DFS and BFS
    278. First Bad Version
    67. Add Binary
    Luogu3426 [POI2005]SZA-Template (KMP)(未完成)
    Luogu2375 [NOI2014]动物园 (KMP)
    Luogu3435 [POI2006]OKR-Periods of Words (KMP)
    Luogu4391 [BOI2009]Radio Transmission 无线传输 (KMP)
    Luogu2922 [USACO08DEC]秘密消息Secret Message (Trie树)
    Luogu2580 于是他错误的点名开始了 (Trie树)
    Luogu3375 【模板】KMP字符串匹配
  • 原文地址:https://www.cnblogs.com/sylvanas2012/p/2406452.html
Copyright © 2011-2022 走看看