我有一个可旋转180度的半圆。如果用户在RotateAnimation期间按reset,则我希望有一个从currentDegree返回到0的重置动画。当前,重置动画从180变为0,但是如果动画还没有完成,这看起来很奇怪。

我有:

final RotateAnimation resetAnim =
  new RotateAnimation(-180f, 0f, width, height/2);


我想要类似的东西:

final RotateAnimation resetAnim =
  new RotateAnimation(currentDegreeOfAnimation, 0f, width, height/2);

最佳答案

旋转速度为:

(EndDegree - StartDegree)/Duration


它旋转的总时间为:

currentTime - startTime


当前的程度是:

speed*time


我相信您可以通过getter访问所有这些变量,除了当前时间只是System.currentTimeMillis()之外,别忘了保持单位整齐。

10-05 21:14