android - 翻译用于绘制位图的矩阵时,它会绘制多个位图

标签 android matrix bitmap translate

在我的 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/

相关文章:

Android Studio 模拟器 Google Play 服务

python - Jython 的 Numpy 模拟

android通过他的名字调用资源文件

android - Crashlytics 找不到 list

java - 执行 doInBackground() android 时发生错误

android - Firebase Firestore 函数通知 Android

c - 生成数字并显示矩阵

r - 从向量的循环移位创建对称矩阵

android - 全屏显示图像 - 失去质量安卓

C# 位图对象,颜色显示为透明