Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 转换用于绘制位图的矩阵时,它会绘制多个位图_Android_Matrix_Bitmap_Translate - Fatal编程技术网

Android 转换用于绘制位图的矩阵时,它会绘制多个位图

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(

在我的Android项目中,我有一个用于在画布上绘制位图的矩阵。在我的drawFrame方法中,我在Y方向上平移矩阵,使其看起来像位图在向上移动。它确实会向上移动,但也会在前一个位置绘制,留下自身的倍数。这是我的画框代码:

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);工作得很好!谢谢