我的应用程序中有一个纺车,它是ImageView
,并且动画效果很好,但是问题是片刻之间它会恢复到原始位置(旋转0度) 。下面的.gif
显示了我在说什么。
旋转的最后一瞬间具有难于捕捉的回弹,使动画看起来极为不流畅。
我正在寻找一种解决此问题的方法,但我不太清楚。这是我的代码,现在为ImageView
设置了动画,并将其旋转到动画的最终位置
ImageView readyButton = findViewById(R.id.spinnerready);
final ImageView spinnerSpin = findViewById(R.id.spinnerspin);
final Animation animRotate = new RotateAnimation(ROTATE_FROM, ROTATE_TO, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animRotate.setDuration(5000);
animRotate.setRepeatCount(0);
readyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float newDeg = ROTATE_TO;
spinnerSpin.startAnimation(animRotate);
spinnerSpin.postDelayed(new Runnable() {
@Override
public void run() {
spinnerSpin.setRotation(ROTATE_TO);
}
}, 5000);
while(newDeg > 360) {
newDeg = newDeg - 360;
}
}
});
我也尝试将旋转延迟更改为4500
而不是5000
,但此问题未解决。有没有一种方法可以消除ImageView
在动画之后回到其原始位置?