2014-01-18 57 views
0

顯示圖這是我的LineGraph代碼:aChartEngine不會在Android中

package com.example.testgraph; 

import org.achartengine.ChartFactory; 
import org.achartengine.GraphicalView; 
import org.achartengine.model.TimeSeries; 
import org.achartengine.model.XYMultipleSeriesDataset; 
import org.achartengine.model.XYSeries; 
import org.achartengine.renderer.XYMultipleSeriesRenderer; 
import org.achartengine.renderer.XYSeriesRenderer; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v4.widget.DrawerLayout.LayoutParams; 
import android.util.Log; 
import android.view.Menu; 
import android.widget.Button; 
import android.widget.LinearLayout; 

public class MainActivity extends Activity { 

    private GraphicalView mChartView; 
    private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); 
     /** The main renderer that includes all the renderers customizing a chart. */ 
     private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 
     /** The most recently added series. */ 
     private XYSeries mCurrentSeries; 
     /** The most recently created renderer, customizing the current series. */ 
     private XYSeriesRenderer mCurrentRenderer; 
     /** Button for creating a new series of data. */ 
     private Button mNewSeries; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     LinearLayout mGraphParent = (LinearLayout)findViewById(R.id.graphParent); 


     int x [] = {1,2,3}; 
     int y [] = {30,40,50}; 

     TimeSeries series = new TimeSeries("Line1"); 
     for (int i = 0; i < x.length;i++) 
     { 
      series.add(x[i],y[i]); 

     } 
     Log.d("line","graph"); 
     XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset(); 
     dataSet.addSeries(series); 
     XYSeriesRenderer renderer = new XYSeriesRenderer(); 
     renderer.setColor(Color.BLACK); 
     mRenderer.addSeriesRenderer(renderer); 




      mChartView = ChartFactory.getLineChartView(this, dataSet, mRenderer); 
      // enable the chart click events 
      mRenderer.setClickEnabled(true); 
      mRenderer.setSelectableBuffer(10); 

      mGraphParent.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.FILL_PARENT)); 

      mChartView.repaint(); 


    } 

    @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; 
    } 

} 

這是我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

     <LinearLayout 
      android:id="@+id/graphParent" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" > 
     </LinearLayout> 

</RelativeLayout> 

圖表只是沒有在屏幕上顯示出來,我已經沒有線索我在這個微不足道的實施中出錯的地方。

+0

它顯示什麼? –

+0

我只看到縮放按鈕。 – Hick

回答

0

我沒有使用AChartEngine,但我可以建議三種方法來調試。

  1. 閱讀文檔,看看說明與代碼有何不同。

  2. 複製從the project's home page鏈接的示例之一。 This example是短。 project's demos是其功能的更長時間的演示。一旦這個工作,你可以逐步進化和測試它。

  3. 考慮解釋問題的假設,然後逐個檢驗這些假設。例如。也許mChartView在佈局中不可見。你可以通過設置它的背景顏色來測試它。也許視圖是可見的,但整個圖形是黑色的黑色。你可以通過選擇不同的顏色來測試。由於多件事情可能被破壞,最好先將程序簡化爲最低程度。

P.S. Java約定是寫int[] x = ...來聲明int數組x。較早的語法只是爲了讓C程序員更容易開始使用Java。