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(),还有其他一些图形,就不一一例举了。
绘制出的图形如下:
原文:http://www.cnblogs.com/mstk/p/3556203.html