4

私はチャートエンジンで働いています。txt ファイルを読み取ってグラフをプロットする必要があります。グラフプロットを取得します。しかし、私がやりたいのは、グラフがレイアウト ビューの最後に到達したときに、オシロスコープ ビューと同様に、最初のビューからプロットする必要があるということです。このリンクのグラフとまったく同じグラフが欲しい

  http://www.youtube.com/watch?v=N6BuRqeUhqc.

私がこれまでに行ったことは次のとおりです。

    private class ChartTask extends AsyncTask<Void, String, Void>{
         String[] values = new String[2];int i1=0;

        // Generates dummy data in a non-ui thread
        @Override
        protected Void doInBackground(Void... params) {
            int i = 0;

            try{

                do{

                    values[0] = Integer.toString(i);
                    values[1] = Integer.toString(amplitude[i]);

                    if(i<=600){
                        multiRenderer.setXAxisMax(600);

                    }
                    else if(i>600){

                        double minX = amplitudeSeries.getMaxX();
                        multiRenderer.setXAxisMin(minX);                     

                    } 
                    publishProgress(values);
                    Thread.sleep(1);

                    i++; 

                }while(i<=amplitude.length);}

            catch (Exception e1){
            }
            return null;

            }

誰かがこれで私を助けることができますか?誰の助けにも感謝します。

4

2 に答える 2

1

AChartEngineを使用してダイナミック チャートを描画するのは非常に簡単です。データセットの内容を更新して を呼び出すだけchartView.repaint()です。

于 2013-02-02T16:38:34.623 に答える
0

これはアニメーションのタスクです。ビットマップを使用してチャートを保持し、タイマーを使用して呼び出しごとに 1 つの X、Y ペアをビットマップに定期的にプロットします。その後、invalidate() を呼び出して、デバイスの画面にビットマップを再描画します。

最後に必要なのは、些細な mod 操作です。この定期的に呼び出されるコードの可能なコード フラグメントを次に示します。

// Get position in bitmap from the iteration index 
int ig = mIteration % bitmap.getWidth(); 

// Erase the vertical line in bitmap
for (int y = 0, y < bitmap.getHeight(); i++) 
  bitmap.setPixel(ig, y, Color.WHITE); 

// Plot the point
bitmap.setPixel(ig, data[mIteration], Color.BLACK); 

// Advance mIteration field value.
mIteration = (mIteration + 1) % data.length; 

// Force to repaint component containing the bitmap.
invalidate(); 

これにより、カーソルを元に戻し、データの最後に到達した後にアニメーションを繰り返すことができます。

于 2013-01-31T07:55:26.410 に答える