2012-06-23 63 views
0

我試圖用文件中保存的值繪製折線圖。我對AChartEngine網站提供的原始演示代碼進行了輕微更改,以便將其應用到我的項目中。但是,有一個我不明白的錯誤,請給我一些幫助。實現AChartEngine的折線圖

帶有錯誤的主代碼:'setChartSettings(...);'顯示錯誤信息。(方法的許多語法錯誤&返回類型缺失)

public class WeightGraph extends AbstractDemoChart { 
    ... 
    double[] values = getValue(); 
    int color = Color.BLUE; 
    PointStyle style = PointStyle.CIRCLE; 
    XYMultipleSeriesRenderer renderer = buildRenderer(color, style); 
    setChartSettings(renderer, "Weight", "Time", "Weight(kg)", 0, 10, 30, 70, Color.LTGRAY, Color.LTGRAY); 
    renderer.setXLabels(12); 
    renderer.setYLabels(10); 
    renderer.setShowGrid(true); 
    renderer.setXLabelsAlign(Align.RIGHT); 
    renderer.setYLabelsAlign(Align.RIGHT); 
    renderer.setZoomButtonsVisible(true); 

    Intent intent = ChartFactory.getLineChartIntent(context, buildDataset(titles, x, values), 
     renderer, "Average temperature"); 
    return intent; 
    } 


/*AbstractDemoChart Class, which the code above has extended:*/ 
public abstract class AbstractDemoChart implements IDemoChart { 
... 
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle, 
     String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor, 
     int labelsColor) { 
    renderer.setChartTitle(title); 
    renderer.setXTitle(xTitle); 
    renderer.setYTitle(yTitle); 
    renderer.setXAxisMin(xMin); 
    renderer.setXAxisMax(xMax); 
    renderer.setYAxisMin(yMin); 
    renderer.setYAxisMax(yMax); 
    renderer.setAxesColor(axesColor); 
    renderer.setLabelsColor(labelsColor); 
    } 

回答

1

嗨首先創建新的活動爲WeightGraph,並與一些佈局設計您的line.xml文件。然後使用下面的代碼。你會得到結果。

public class WeightGraph extends Activity 
{ 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.line); 
     LinearLayout line_chart_layout; 
     line_chart_layout = findViewById(R.id.line_chart); 

     .................    

     double[] values = getValue(); 
     int color = Color.BLUE; 
     PointStyle style = PointStyle.CIRCLE; 
     XYMultipleSeriesRenderer renderer = buildRenderer(color, style); 
     setChartSettings(renderer, "Weight", "Time", "Weight(kg)", 0, 10, 30, 70,  Color.LTGRAY, Color.LTGRAY); 
     renderer.setXLabels(12); 
     renderer.setYLabels(10); 
     renderer.setShowGrid(true); 
     renderer.setXLabelsAlign(Align.RIGHT); 
     renderer.setYLabelsAlign(Align.RIGHT); 
     renderer.setZoomButtonsVisible(true); 

     line_chart_layout.addView(ChartFactory.getLineChartIntent(context, ui ldDataset(titles, x, values), renderer, "Average temperature")); 

    } 
    protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,int labelsColor) 
    { 
     renderer.setChartTitle(title); 
     renderer.setXTitle(xTitle); 
     renderer.setYTitle(yTitle); 
     renderer.setXAxisMin(xMin); 
     renderer.setXAxisMax(xMax); 
     renderer.setYAxisMin(yMin); 
     renderer.setYAxisMax(yMax); 
     renderer.setAxesColor(axesColor); 
     renderer.setLabelsColor(labelsColor); 
    } 
} 
0
ArrayList<Integer> z = new ArrayList<Integer>(); 
     // int z[]={0,1,2,3,4,5,6,7}; 

     List<Double> values_len = new ArrayList<Double>(); 
     List<Double> values = new ArrayList<Double>(); 

     XYSeries xSeries = new XYSeries(""); 

      for (int i = 0; i < yaxes_value.size(); i++) { 
       values.add((double) Long.parseLong(yaxes_value.get(i))); 
       xSeries.add(i+1, values.get(i)); 
      } 


     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
     dataset.addSeries(xSeries); 

     XYSeriesRenderer Xrenderer = new XYSeriesRenderer(); 
     Xrenderer.setColor(Color.parseColor("#99CC33")); 
     Xrenderer.setPointStyle(PointStyle.CIRCLE); 
     Xrenderer.setShowLegendItem(true); 
     Xrenderer.setDisplayChartValues(false); 
     Xrenderer.setChartValuesSpacing(25); 
     Xrenderer.setChartValuesTextSize(25f); 
//  Xrenderer.setChartValuesTextAlign(Align.LEFT); 
     Xrenderer.setPointStrokeWidth(10); 
     Xrenderer.setDisplayChartValuesDistance(10); 
     Xrenderer.setLineWidth(2); 

     XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 

     mRenderer.setChartTitle("Simple Line Chart"); 
     mRenderer.setXTitle(X_title); 
     mRenderer.setYTitle(Y_title+type); 
     mRenderer.setMargins(new int[] { 50, 100, 40, 20 });// TOP,LEFT,BOTTOM,RIGHT 
     mRenderer.setYLabelsPadding(2); 
     mRenderer.setXLabelsPadding(15); 
     mRenderer.setXLabelsAngle(335); 
     mRenderer.setYAxisMin(0); 
//  mRenderer 
//    .setYAxisMax((Collections.max(values)) + (Collections.min(values))); 
     mRenderer.setXAxisMin(-1); 

     mRenderer.setLabelsTextSize(20); 
     mRenderer.setYLabelsAlign(Align.RIGHT); 
     mRenderer.setXLabelsAlign(Align.CENTER); 
     mRenderer.setChartValuesTextSize(20); 
     mRenderer.setDisplayValues(true); 
     mRenderer.setMarginsColor(Color.WHITE); 
     mRenderer.setLegendTextSize(20); 
     mRenderer.setAxesColor(Color.BLACK); 
     mRenderer.setYLabelsColor(0, Color.BLACK); 
     mRenderer.setXLabelsColor(Color.BLACK); 
     mRenderer.setLabelsColor(Color.BLACK); 
     mRenderer.setZoomButtonsVisible(false); 
     mRenderer.setChartTitleTextSize(20); 
     mRenderer.setAxisTitleTextSize(25); 
     mRenderer.setXLabels(0); 
     mRenderer.setYLabels(10); 
     mRenderer.setShowLabels(true); 
     mRenderer.setPanEnabled(false); 
     mRenderer.setPanEnabled(false, false); 
     mRenderer.setZoomEnabled(false, false); 
     mRenderer.setZoomEnabled(false); 
     mRenderer.setGridColor(Color.BLACK); 
     mRenderer.setShowGrid(true); 
     mRenderer.setApplyBackgroundColor(true); 
     mRenderer.setBackgroundColor(Color.WHITE); 


     for (int i = 0; i < Xaxes_value.size(); i++) { 
      mRenderer.addXTextLabel(i + 1, Xaxes_value.get(i)); 
     } 

     for (int i = 0; i < z.size(); i++) { 
      mRenderer.addXTextLabel(i, Xaxes_value.get(i)); 
     } 
     mRenderer.addSeriesRenderer(Xrenderer); 

     GraphicalView mChart = (GraphicalView) ChartFactory.getLineChartView(
       getBaseContext(), dataset, mRenderer); 

     line_chart_layout.addView(mChart);