Android旋转动画

时间:2013-05-10 14:24:17

标签: android android-animation

我遇到了问题而我无法找到有效的解决方案。 所以,这是我的问题。我必须让ImageView自行旋转,在方向变化时旋转90度。 我这样做了,图像实际上旋转非常棒,但是当动画结束时,图像会自动重置到之前的位置。

以下是我用来旋转图片的代码:

   Matrix matrix = mImageView.getImageMatrix();
                    RectF dst = new RectF();
                    matrix.mapRect(dst, new RectF(mImageView.getDrawable().getBounds()));
                    mAnimation = new RotateAnimation(0.0f, -90.0f, Animation.RELATIVE_TO_SELF, 0.5f,
                            Animation.RELATIVE_TO_SELF, 0.5f);
                    mAnimation.setDuration(5000);
                    mImageView.startAnimation(mAnimation);
                    mImageView.setImageMatrix(matrix);
                    mCurrentOrientation = 1;

2 个答案:

答案 0 :(得分:1)

完成后,你可以使用它来保持动画:

mAnimation.setFillEnabled(true);
mAnimation.setFillAfter(true);

答案 1 :(得分:0)

您可以做的一件事是将imageview设置为已旋转的图像版本,然后将其从-90度旋转到0度。这将适用于您已经使用的API。如果您拨打两个电话,那么它就会在没有口吃的情况下正常工作。

另一种选择是使用更高版本的API。对象动画制作动画不会将视图返回到其原始位置。更多关于这里。

How to rotate a drawable by ObjectAnimator?

代码很简单,但这不适用于姜饼。

相关问题