2012-03-03 5 views
1

(AchartEngine)TimeChartの系列点の画面座標を取得しようとしていますが、toScreenPointメソッドは常にNullPointerExceptionを返します。ここでAchartengine XYChart.toScreenPointは常にNULLPointerExceptionを返します

は、コードは次のとおりです。

TimeChart chart = new TimeChart(dataSet, renderer); 
XYSeries serie = dataSet.getSeriesAt(0); 

for(int u=0;u<serie.getItemCount();u++) 
{ 
    double dy = serie.getY(u); 
    double dx = serie.getX(u); 

    double[] pos = chart.toScreenPoint(new double[]{dx,dy}, 0); 
} 

はタイムチャートをインスタンス化する際に、私はinitialiizeすべきものはありますか?

答えて

0

ここには時間グラフのコードがあります。独自のコードでfillDataを編集する必要があります。

private void chartView() { 

     layout = (RelativeLayout) findViewById(R.id.graph); 

     // create dataset and renderer 
     mDataset = new XYMultipleSeriesDataset(); 
     mRenderer = new XYMultipleSeriesRenderer(); 
     mRenderer.setAxisTitleTextSize(16); 
     mRenderer.setChartTitleTextSize(20); 
     mRenderer.setLabelsTextSize(15); 
     mRenderer.setLegendTextSize(15); 
     mRenderer.setPointSize(3f); 

     XYSeriesRenderer r = new XYSeriesRenderer(); 
     r.setColor(Color.CYAN); 
     r.setPointStyle(PointStyle.DIAMOND); 
     r.setFillPoints(true); 
     mRenderer.addSeriesRenderer(r); 
     mRenderer.setClickEnabled(true); 
     mRenderer.setSelectableBuffer(20); 
     mRenderer.setPanEnabled(true); 

     time_series = new TimeSeries("Weight"); 

     mDataset.addSeries(time_series); 

     fillData(); 

     mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer, 
       "H:mm:ss"); 

     layout.addView(mChartView); 
    } 

private void fillData() { 
    long value = new Date().getTime() - 3 * TimeChart.DAY; 
    for (int i = 0; i < 100; i++) { 
     time_series.add(new Date(value + i * TimeChart.DAY/4), i); 
    } 
} 

希望すると、これが役立ちます。

+0

ご協力いただきありがとうございますが、私は何か不足していると思います。 私はすでにmChartViewを持っていますが、TimeChartクラスのメソッドであるtoScreenPoint()を使用するために、TimeChartオブジェクトを取得する方法が見つかりません。 – on35

+0

'public double [] toRealPoint(float screenX、float screenY、int scale)' 'スクリーンポイントを実際の座標ポイントに変換します。 パラメータ: がscreenX - 画面のX軸値 screenYの - 画面のY軸値 戻り値: onTouch(ビューV、MotionEventイベント){ がscreenX = 実際の座標は – sweggersen

+0

をpoint' I画面を必要は 例座標event.getX();screenY = event.getX(); } 実際の座標ではありません – on35

関連する問題