Android磨损表盘旋转留下痕迹

时间:2017-02-19 17:10:54

标签: java android wear-os watchface

我正在编制一个表盘,我在背景上放了一个旋转的轮子,但是它留下了一条奇怪的痕迹,而这条痕迹并没有被删除。此踪迹仅保留在透明背景区域。

演示:

enter image description here

enter image description here



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(); 




我该如何解决?

2 个答案:

答案 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