ネットワークからサンプル (float 配列) を受け取り、SurfaceView で曲線として描画します。サンプルは定期的に更新されるため、曲線は動的です。私のプログラムでは、次のように、曲線が描画されるビットマップを作成します。
Bitmap bmp = Bitmap.createBitmap(width, height, Config.ARGB_4444);
Canvas canvas = new Canvas(bmp);
drawCurve(canvas);
void drawCurve(Canvas canvas, float[] buffer) {
...
canvas.drawLine(x1, buffer[i], x2, buffer[i+1], paint);
...
}
...
private class RenderThread extends Thread {
public void run() {
c = mHolder.lockCanvas(null);
c.drawBitmap(bmp, 0, 0, null);
mHolder.unlockCanvasAndPost(c);
...
}
}
曲線をサポートしたいのですが、ズームインとズームアウトが可能です。曲線を効果的に描画するには、drawCurveメソッドは新しいサンプルを更新するだけです。つまり、古い領域を消去し、その領域に新しいサンプルを描画します。どのようにできるのか?ありがとう!