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

      




  • 相关阅读:
    疫情环境下的网络学习笔记 python 5.8 数据库入门终章
    疫情环境下的网络学习笔记 python 5.7 navicat数据库,例题,sql注入
    疫情环境下的网络学习笔记 python 5.6 暂时看看
    疫情环境下的网络学习笔记 python 5.5 MYSql 表关系,外键
    疫情环境下的网络学习笔记 python 5.4 数据库基础
    疫情环境下的网络学习笔记 python 4.30 初识数据库
    疫情环境下的网络学习笔记 python 4.29 网络小项目
    XJOI 夏令营501-511测试11 游戏
    XJOI 夏令营501-511测试11 统计方案
    CF1197D Yet Another Subarray Problem
  • 原文地址:https://www.cnblogs.com/sylvanas2012/p/2406452.html
Copyright © 2011-2022 走看看