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

      




  • 相关阅读:
    jquery 获取easyui combobox选中的值
    一个多余逗号引起的麻烦
    Microsoft.Office.Interop.Excel 放到B/S客户端失败问题 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。
    自己收藏-javascript用window.open的子窗口关闭自己并且刷新父窗口
    easyUI datagrid 不刷新问题
    水晶报表中公式字段if else 语句无法正常执行的问题
    SQL SERVER 察看数据库连接池情况
    Data Table 转 List<Type>
    .Net 调用SAP RFC
    VS2017 插件介绍
  • 原文地址:https://www.cnblogs.com/sylvanas2012/p/2406452.html
Copyright © 2020-2023  润新知