Java 安卓手表表面旋转留下痕迹

Java 安卓手表表面旋转留下痕迹,java,android,wear-os,watchface,Java,Android,Wear Os,Watchface,我正在为一个手表面编程,我在背景上放了一个旋转的轮子,但它在以前的地方留下了一条奇怪的轨迹,而这条轨迹并没有被删除。此轨迹仅保留在透明背景区域上 演示: 最终浮动角度=(浮动)(System.currentTimeMillis()%2000) / 2000 * 360; 矩阵=新矩阵(); matrix.setRotate(角度,canvas.getHeight()/2, canvas.getWidth()/2); drawBitmap(mWheelBitmap,matrix,new Pa

我正在为一个手表面编程,我在背景上放了一个旋转的轮子,但它在以前的地方留下了一条奇怪的轨迹,而这条轨迹并没有被删除。此轨迹仅保留在透明背景区域上

演示:

最终浮动角度=(浮动)(System.currentTimeMillis()%2000)
/ 2000 * 360;
矩阵=新矩阵();
matrix.setRotate(角度,canvas.getHeight()/2,
canvas.getWidth()/2);
drawBitmap(mWheelBitmap,matrix,new Paint());

使无效()似乎您尚未重置矩阵。你可以像下面那样重置矩阵

   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类也是更好的做法,我认为在开始绘制当前面之前,只需清除
画布即可:

@Override
public void onDraw(Canvas canvas, Rect bounds) {
    canvas.drawColor(Color.BLACK);

    // your code starts here
}