2014-01-18 4 views
0

Это мой код рёберного графа: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 array x. Более старый синтаксис предназначен только для упрощения программирования программистами C с использованием Java.

0

Попробуйте использовать версию 1.2 библиотеки aChartEngine

Смежные вопросы