2025-04-23

前言

  一個人開發就是蛋疼…堅持吧…

android的數據報表顯示

  對於數據的可視化,之前,是想直接用Canvas 來畫,不過,評估瞭一下,工作量挺大的,因為,是一個人開發,而且是從零開始,如果寫一個Canvas 畫報表的方法,太費時間瞭,於是,上網找瞭一下,果然被我找到瞭…

AchartEngine

http://code.google.com/achartengine

繪制的基礎

  很多,使用這個引擎的同學,大多,會被它提供的例子的給嚇到,因為,太多參數瞭!到最後,都不知道看到那裡去瞭,其實,仔細研究,這個引擎的使用是非常簡單…()

首先,我們整理一下思路,一般繪制一個圖表需要:如下圖所示

achart2

 

從圖中,我們可以看出,繪制一個圖表我們其實,我們隻需要理解三個概念

1,ChartFactory ,傳入XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,然後,我們隻需用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,)方法就可以進行圖表的顯示

2,XYMutilpleSeriesRenderer 用於進行繪制的設置,添加的XYSeriesRender對象,用於定義繪制的點集合設置,註意數量要和XYMutilpleSeriesDataset,添加的XYseries一致!!!

3,XYMutilpleSeriesDataset 用於數據的存放,添加的XYseries對象,用於提供繪制的點集合的數據

以下為一個小例子:

 
[java] view plaincopy
public class ShowExamActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        // 1, 構造顯示用渲染圖 
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 
        // 2,進行顯示 
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
        // 2.1, 構建數據 
        Random r = new Random(); 
        for (int i = 0; i < 2; i++) { 
            XYSeries series = new XYSeries("test" + (i + 1)); 
            // 填充數據 
            for (int k = 0; k < 10; k++) { 
                // 填x,y值 
                series.add(k, 20 + r.nextInt() % 100); 
            } 
            // 需要繪制的點放進dataset中 
            dataset.addSeries(series); 
        } 
        // 3, 對點的繪制進行設置 
        XYSeriesRenderer xyRenderer = new XYSeriesRenderer(); 
        // 3.1設置顏色 
        xyRenderer.setColor(Color.BLUE); 
        // 3.2設置點的樣式 
        xyRenderer.setPointStyle(PointStyle.SQUARE); 
        // 3.3, 將要繪制的點添加到坐標繪制中 
        renderer.addSeriesRenderer(xyRenderer); 
        // 3.4,重復1~3的步驟繪制第二個系列點 
        xyRenderer = new XYSeriesRenderer(); 
        xyRenderer.setColor(Color.RED); 
        xyRenderer.setPointStyle(PointStyle.CIRCLE); 
        renderer.addSeriesRenderer(xyRenderer); 
 
        // Intent intent = new LinChart().execute(this); 
        Intent intent = ChartFactory 
                .getLineChartIntent(this, dataset, renderer); 
        startActivity(intent); 
 
    } 

 
 
 
這裡有一點要註意,我們是用內置的activity進行我們的圖表的顯示:所以,我們要在AndroiManifest裡面添加一句
[xml] view plaincopy
<activity android:name="org.achartengine.GraphicalActivity" /> 

效果:

device-2012-01-18-000853

在稍後的一段時間裡面,我會談談如何在xml佈局文件裡面嵌套我們的圖表,有興趣的朋友,可以進行關註

摘自 youxiachai的專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *