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
}