首页 > 其他 > 详细

AChartEngine绘制图形

时间:2014-02-20 02:36:00      阅读:426      评论:0      收藏:0      [点我收藏+]

AChartEngine是Android作图的方法之一,要使用AChartEngine,首先下载AChartEngine,按照以下方法将其jar包添加到工程中:

1、将achartengine-1.1.0.jar文件复制到工程的libs文件夹下;

2、在Eclipse中选中工程,按F5刷新;

3、在Eclipse中选中libs文件夹下的achartengine-1.1.0.jar,右键点击Build Path-->Add to Build Path。

然后在Manfest文件中加入AChartEngine绘图的Activity:

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

最后是编写java文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package com.hzhi.chartdemo;
 
import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
 
 
public class MainActivity extends Activity {
     
    // 数据值
    double[] dx = new double[]{1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00};    
    double[] dy = new double[]{5.35,3.67,5.98,9.88,7.21,6.12,5.05,6.44,5.41,9.98}; 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
               DrawChart();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
     
    public void DrawChart(){
         
        double x,y;<br>        // 定义XYMultipleSeriesRenderer
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        // 定义XYMultipleSeriesDataset
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        // 定义XYSeriesRenderer
        XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
        // 定义XYSeries
        XYSeries series = new XYSeries("DATA_01");
         
        // 将数据加入series       
        for (int i=0; i<10; i++){
            x = dx[i];
            y = dy[i];
            series.add(x,y);
        }       
        // 将series加入dataset
        dataset.addSeries(series);
         
        // 设置系列颜色
        xyRenderer.setColor(Color.YELLOW);
        // 设置系列点样式
        xyRenderer.setPointStyle(PointStyle.SQUARE);
        // 设置系列点宽度
        xyRenderer.setPointStrokeWidth(10);
        // 设置系列点样式
        xyRenderer.setLineWidth(5);
        // 将xyRenderer加入renderer
        renderer.addSeriesRenderer(xyRenderer);
         
        // 设置图表标题
        renderer.setChartTitle("AChartEngine DEMO");
        renderer.setChartTitleTextSize(30);
        // 设置图表标题X,Y轴的标题及样式
        renderer.setXTitle("X VALUES");   
        renderer.setYTitle("Y VALUES");
        renderer.setAxisTitleTextSize(30);
        renderer.setYLabelsPadding(20);
        // 设置坐标轴数值的字体
        renderer.setLabelsTextSize(30);
        // 坐标轴的最大、最小值
        renderer.setXAxisMax(10);
        renderer.setXAxisMin(0);
        renderer.setYAxisMax(10);
        renderer.setYAxisMin(0);
        // 设置图表背景颜色
        renderer.setBackgroundColor(Color.BLACK);
        renderer.setApplyBackgroundColor(true);
        // 设置图表的Margins数组(1.上,2.左,3.下,4.右)       
        int[] m = new int[]{80,80,20,20};
        renderer.setMargins(m);
        // 是否显示图例
        renderer.setShowLegend(false);
        // 显示网格
        renderer.setShowGrid(true);
        // 网格颜色
        renderer.setGridColor(Color.WHITE);
         
        // 绘制曲线图
        Intent intent = ChartFactory.getLineChartIntent(this, dataset, renderer);
        startActivity(intent);
         
    }
 
}

由于显示的是org.achartengine.GraphicalActivity,所以在onCreate(Bundle savedInstanceState)方法中,删掉setContentView()语句,用绘图函数DrawChart()替代。

DrawChart()首先定义了几个变量。XYMultipleSeriesRenderer是整个图形,XYSeriesRenderer是图形里面的一个系列;XYMultipleSeriesDataset是整个图形的数据集,XYSeries是图形里面一个系列的数据集。

首先将多组成对的X值和Y值加入XYSeries,再将XYSeries加入XYMultipleSeriesDataset。然后设置XYSeriesRenderer的一些属性,再将设置好的XYSeriesRenderer加入XYMultipleSeriesRenderer。如果有多个系列,可以重复上述过程,只要保证一个XYSeries对应一个XYSeriesRenderer即可。最后设置XYMultipleSeriesRenderer的一些属性,即整个图形的属性。

设置好以后,用ChartFactory.getLineChartIntent()函数绘制曲线图。如果绘制条形图,用getBarChartIntent(),绘制饼图用getPieChartIntent(),还有其他一些图形,就不一一例举了。

绘制出的图形如下:

bubuko.com,布布扣

AChartEngine绘制图形

原文:http://www.cnblogs.com/mstk/p/3556203.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!