1

私のAndroidプロジェクトには、キャンバスにビットマップを描画するために使用するマトリックスがあります。drawFrameメソッドの実行中に、マトリックスをY方向に変換して、ビットマップが上に移動しているように見せます。それは上に移動しますが、それ自体の倍数を残して前の位置にも描画されます。これが私のdrawFrameコードです:

Canvas canvas = null;
canvas = holder.lockCanvas();

Matrix moveMatrix = new Matrix ();
moveMatrix.postTranslate(0, 10);
matrix.preConcat(moveMatrix);

canvas.drawBitmap(bitmap, matrix, null);

holder.unlockCanvasAndPost(canvas);

「matrix」はグローバルMatrixメンバーです。

これが画面全体にビットマップの「ストリーク」トレイルを残す理由を誰かが知っていますか?

ありがとう!

以前の各ビットマップ位置は、ビットマップが移動するたびにy方向に上下にシフトするように見えることを忘れました。そのため、最終的には上下に揺れているように見えるビットマップの文字列になります。これは、すべてのビットマップをすべてのフレームで再描画する必要があることを意味します。そうしないと、すべてが静止します。

4

1 に答える 1

1

ビットマップの前の位置でキャンバスをクリアする必要があります:)

于 2011-07-24T00:47:53.920 に答える