在我的 Android 项目中,我有一个矩阵,用于在 Canvas 上绘制位图。在我的 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 方向上上下移动。所以它最终得到一串看起来上下抖动的位图。这意味着每帧都必须重新绘制每个位图,否则它们将全部静止不动。
最佳答案
您需要清除位图之前位置的 Canvas :)
关于android - 翻译用于绘制位图的矩阵时,它会绘制多个位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803373/