我正在编制一个表盘,我在背景上放了一个旋转的轮子,但是它留下了一条奇怪的痕迹,而这条痕迹并没有被删除。此踪迹仅保留在透明背景区域。
演示:
final float angle = (float) (System.currentTimeMillis() % 2000)
/ 2000 * 360;
Matrix matrix = new Matrix();
matrix.setRotate(angle,canvas.getHeight()/2,
canvas.getWidth()/2);
canvas.drawBitmap(mWheelBitmap, matrix, new Paint());
invalidate();

我该如何解决?
答案 0 :(得分:1)
好像你没有重置Matrix。您可以像下面那样重置矩阵。
matrix.reset();
您可以按照下面的代码进行操作。它对我有用。
final float angle = (float) (System.currentTimeMillis() % 2000) / 2000 * 360;
Matrix matrix = new Matrix();
matrix.reset();
matrix.setRotate(angle,canvas.getHeight()/2,
canvas.getWidth()/2);
canvas.drawBitmap(mWheelBitmap, matrix, new Paint());
invalidate();
在onCreate()
中启动Matrix类也是更好的做法答案 1 :(得分:1)
我认为您只需在开始绘制当前面部之前清除List[]::new
:
javac