2011-10-07 73 views
4

我是新來的圖形概念在android中。在我的應用程序中,我想用achartengine實現線圖。我有achartengine的演示它包含了很多代碼。我無法理解折線圖。我想要使​​用achartengine的簡單線圖。請任何人都可以幫助我。android - 如何實現使用Achartengine線圖

感謝

回答

14


下面的方法將生成的隨機點(X,Y)並將其添加到XYSeries(它是一系列點的在圖表上繪製)。

private XYMultipleSeriesDataset getDemoDataset() { 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    final int nr = 7; 
    Random r = new Random(); 
    for (int i = 0; i < SERIES_NR; i++) { 
     XYSeries series = new XYSeries("Demo series " + (i + 1)); 
     for (int k = 0; k < nr; k++) { 
      series.add(k, 20 + r.nextInt() % 100); 
     } 
     dataset.addSeries(series); 
    } 
    return dataset; 
} 

以下方法將返回一個用於繪製折線圖的多渲染器。

private XYMultipleSeriesRenderer getDemoRenderer() { 
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 
    renderer.setAxisTitleTextSize(12); 
    renderer.setChartTitleTextSize(12); 
    renderer.setLabelsTextSize(15); 
    renderer.setLegendTextSize(15); 
    renderer.setPointSize(5f); 
    renderer.setMargins(new int[] { 20, 30, 15, 0 }); 
    XYSeriesRenderer r = new XYSeriesRenderer(); 
    r.setColor(Color.BLACK); 
    r.setPointStyle(PointStyle.CIRCLE); 
    r.setFillBelowLine(false); 
    r.setFillPoints(true); 
    renderer.addSeriesRenderer(r); 
    setChartSettings(renderer); 
    return renderer; 
} 

以下方法將爲您的圖表設置設置。您可以在AChartEngine提供的文檔中查找更多選項。

private void setChartSettings(XYMultipleSeriesRenderer renderer) { 
    renderer.setChartTitle("Chart demo"); 
    renderer.setXTitle("x values"); 
    renderer.setYTitle("y values"); 
    renderer.setApplyBackgroundColor(false); 
    renderer.setRange(new double[] {0,6,-70,40}); 
    renderer.setFitLegend(false); 
    renderer.setAxesColor(Color.BLACK); 
    renderer.setShowGrid(true); 
    renderer.setXAxisMin(0.5); 
    renderer.setXAxisMax(10.5); 
    renderer.setYAxisMin(0); 
    renderer.setZoomEnabled(false); 
    renderer.setYAxisMax(30); 
    } 

你現在可以得到的折線圖在兩個方面:

  • 圖表作爲視圖可以添加到任何佈局:

    ChartFactory.getLineChartView(this, getDemoDataset(), getDemoRenderer());

  • 圖作爲共同開展新活動的意圖

    ChartFactory.getLineChartIntent(this, getDemoDataset(), getDemoRenderer());

PS:SERIES_NR是一個常數,它告訴你要多少線系列畫。

+3

正是我想要的。保持它aneesh –