我正在使用旋转动画在某种程度上旋转图像。在同一屏幕中,我希望用户通过单击按钮将同一图像从前一个位置旋转到下一个位置。但旋转没有任何反复。
///inside oncreate
RotateAnimation rotate = new RotateAnimation(0, rotateSpeed,
Animation.RELATIVE_TO_SELF, 0.9f,
Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(4000);
rotate.setFillAfter(true);
imv.setAnimation(rotate);
///inside button click
RotateAnimation rotate = new RotateAnimation(start, start+end,
Animation.RELATIVE_TO_SELF, 0.9f,
Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(2000);
rotate.setFillAfter(true);
imv.setAnimation(rotate);
答案 0 :(得分:1)
将您的视图和旋转值传递给此方法。希望这能解决您的问题。
public void rotateView(final View v, final int rotation) {
v.animate().setDuration(250).rotation(rotation).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
}
@Override
public void onAnimationCancel(Animator animation) {
super.onAnimationCancel(animation);
}
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
}
});
}
答案 1 :(得分:0)
RotateAnimation rotate = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
rotate.setDuration(4000);
rotate.setRepeatCount(-1); // here you can set repeatcoount
yourView.setAnimation(rotate)
希望它会对你有所帮助。
干杯!
答案 2 :(得分:0)
哦,我只是在应用新的旋转动画之前清除已经应用的旋转动画。
view.clearAnimation();