Android 转换用于绘制位图的矩阵时,它会绘制多个位图
在我的Android项目中,我有一个用于在画布上绘制位图的矩阵。在我的drawFrame方法中,我在Y方向上平移矩阵,使其看起来像位图在向上移动。它确实会向上移动,但也会在前一个位置绘制,留下自身的倍数。这是我的画框代码:Android 转换用于绘制位图的矩阵时,它会绘制多个位图,android,matrix,bitmap,translate,Android,Matrix,Bitmap,Translate,在我的Android项目中,我有一个用于在画布上绘制位图的矩阵。在我的drawFrame方法中,我在Y方向上平移矩阵,使其看起来像位图在向上移动。它确实会向上移动,但也会在前一个位置绘制,留下自身的倍数。这是我的画框代码: Canvas canvas = null; canvas = holder.lockCanvas(); Matrix moveMatrix = new Matrix (); moveMatrix.postTranslate(0, 10); matrix.preConcat(
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);
“矩阵”是一个全球矩阵成员
有人知道为什么会在屏幕上留下“条纹”位图痕迹吗
谢谢
我忘了提到,每次位图移动时,之前的每个位图位置似乎都会在y方向上上上下移动。因此,它以一串看起来像是上下抖动的位图结束。这意味着每帧位图都必须重新绘制,否则它们都会静止不动。您需要清除位图上一位置的画布:)您需要清除位图上一位置的画布:)我看不到清除画布的方法。只需重新绘制背景色。但这并不能真正解决问题,是吗?它仍将绘制上一个位图,然后在其上绘制背景?您可以使用drawColor(0,clear)清除画布。它将解决您的问题。是的,我使用了drawColor(0,PorterDuff.Mode.CLEAR);工作得很好!谢谢。我没有看到清除画布的方法。只需重新绘制背景色。但这并不能真正解决问题,是吗?它仍将绘制上一个位图,然后在其上绘制背景?您可以使用drawColor(0,clear)清除画布。它将解决您的问题。是的,我使用了drawColor(0,PorterDuff.Mode.CLEAR);工作得很好!谢谢