我正在开发一个表盘,想在 1/5 秒内将秒针旋转 1.2 度。
为什么会有这些数字?
1) 360 度/60 秒 = 6 度/秒
2) 6 度 / 5 = 1.2 度(在五分之一秒内旋转 1.2 度)。
下面是正常旋转(每秒 6 度)。
上图花费一秒钟旋转 6 度。
我的问题是:如何花五分之一秒旋转 1.2 度?
这是我的代码:
private void drawClassicSecondsHand(Canvas canvas) {
final int seconds = (mCalendar.get(Calendar.SECOND));
final float secondsRotation = seconds * 6;
float originRadius = complicationHandBitmap.getWidth() / 2f;
float secondsAreaCenterX = mCenterX - (float) (mCenterX * 0.45);
canvas.rotate(secondsRotation, secondsAreaCenterX, mCenterY);
classicSecondsComplication.draw(
canvas,
secondsAreaCenterX,
mCenterY,
classicComplicationRadius,
complicationHandBitmap,
originRadius);
}
onDraw
以上方法在我的表盘服务的方法中调用。
public void onDraw(Canvas canvas, Rect bounds) {
...
drawClassicSecondsHand(Canvas canvas);
}