android如何使用RotateAnimation旋转图像两次

时间:2015-10-07 10:34:04

标签: android android-animation

我正在使用旋转动画在某种程度上旋转图像。在同一屏幕中,我希望用户通过单击按钮将同一图像从前一个位置旋转到下一个位置。但旋转没有任何反复。

///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);

3 个答案:

答案 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();