0

jjoe64 の GraphView プロジェクトを使用していますが、その場でデータを追加するときに問題が発生しています。マイクの音量を折れ線グラフにプロットしようとしていますが、グラフが更新されません。ここに私が持っているものがあります:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LinearLayout layout = (LinearLayout) findViewById(R.id.GraphLayout);

    graph = new LineGraphView(this, "Sounds");
    data = new GraphViewSeries(new GraphView.GraphViewData[] { new GraphView.GraphViewData(X++, 0) });
    graph.addSeries(data);
    graph.setManualYAxis(true);
    graph.setManualYAxisBounds(32767, 0);
    graph.setViewPort(3, 100);
    graph.setScrollable(true);
    layout.addView(graph);

    final MediaRecorder media = new MediaRecorder();
    media.setAudioSource(MediaRecorder.AudioSource.MIC);
    media.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    media.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    media.setOutputFile("/dev/null");
    try {
        media.prepare();
    } catch (Throwable t) {}
    media.start();

    new Timer().scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            final int amp = media.getMaxAmplitude();
            MaxSoFar = Math.max(amp, MaxSoFar);
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    data.appendData(new GraphView.GraphViewData(X++, amp), true);
                    //Here I try few different things
                    TextView output = (TextView)findViewById(R.id.output);
                    String info = MaxSoFar + "" + nl;
                    info += amp + "";
                    output.setText(info);
                }
            });
        }
    }, 0, 100);
}

、、または何もないdata.appendData(...)などの直後に、ラインで多くの実験を行ってきました。指を置いてグラフをドラッグした場合にのみ、グラフを再描画できます。どのような種類のタッチ入力でも、グラフは正しく描画されます。それが入っていることと関係があるかもしれませんが、なぜそれが問題であり、要件ではないのか考えられません。graph.redrawAll();graph.invalidate();graph.postInvalidate();runOnUiThread

Cyanogenmod 10.1 Nightlies (Android 4.2.2) を実行している Galaxy S3 でこれをデバッグしています。

4

1 に答える 1