android的數據報表顯示
對於數據的可視化,之前,是想直接用Canvas 來畫,不過,評估了一下,工作量挺大的,因爲,是一個人開發,而且是從零開始,如果寫一個Canvas 畫報表的方法,太費時間了,於是,上網找了一下,果然被我找到了…
AchartEngine
http://code.google.com/achartengine
繪製的基礎
很多,使用這個引擎的同學,大多,會被它提供的例子的給嚇到,因爲,太多參數了!到最後,都不知道看到那裏去了,其實,仔細研究,這個引擎的使用是非常簡單…()
首先,我們整理一下思路,一般繪製一個圖表需要:如下圖所示
從圖中,我們可以看出,繪製一個圖表我們其實,我們只需要理解三個概念
1,ChartFactory ,傳入XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,然後,我們只需用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,)方法就可以進行圖表的顯示
2,XYMutilpleSeriesRenderer 用於進行繪製的設置,添加的XYSeriesRender對象,用於定義繪製的點集合設置,注意數量要和XYMutilpleSeriesDataset,添加的XYseries一致!!!
3,XYMutilpleSeriesDataset 用於數據的存放,添加的XYseries對象,用於提供繪製的點集合的數據
以下爲一個小例子:
01 |
public
class ShowExamActivity extends
Activity { |
03 |
protected
void onCreate(Bundle savedInstanceState) {
|
05 |
super .onCreate(savedInstanceState);
|
07 |
XYMultipleSeriesRenderer renderer =
new XYMultipleSeriesRenderer();
|
09 |
XYMultipleSeriesDataset dataset =
new XYMultipleSeriesDataset();
|
11 |
Random r =
new Random();
|
12 |
for
( int
i = 0 ; i <
2 ; i++) { |
13 |
XYSeries series =
new XYSeries( "test"
+ (i + 1 ));
|
15 |
for
( int
k = 0 ; k <
10 ; k++) { |
17 |
series.add(k,
20 + r.nextInt() %
100 ); |
20 |
dataset.addSeries(series);
|
23 |
XYSeriesRenderer xyRenderer =
new XYSeriesRenderer();
|
25 |
xyRenderer.setColor(Color.BLUE);
|
27 |
xyRenderer.setPointStyle(PointStyle.SQUARE);
|
29 |
renderer.addSeriesRenderer(xyRenderer);
|
31 |
xyRenderer =
new XYSeriesRenderer();
|
32 |
xyRenderer.setColor(Color.RED);
|
33 |
xyRenderer.setPointStyle(PointStyle.CIRCLE);
|
34 |
renderer.addSeriesRenderer(xyRenderer);
|
37 |
Intent intent = ChartFactory
|
38 |
.getLineChartIntent( this , dataset, renderer);
|
39 |
startActivity(intent);
|
這裏有一點要注意,我們是用內置的activity進行我們的圖表的顯示:所以,我們要在AndroiManifest裏面添加一句
1 |
< activity
android:name = "org.achartengine.GraphicalActivity"
/> |
效果:
在稍後的一段時間裏面,我會談談如何在xml佈局文件裏面嵌套我們的圖表,有興趣的朋友,可以進行關注