1

我有一个问题,我无法找到有效的解决方案。所以,这是我的问题。我必须自己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;
4

2 回答 2

1

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

mAnimation.setFillEnabled(true);
mAnimation.setFillAfter(true);
于 2013-05-10T15:36:15.933 回答
0

您可以做的一件事是将 imageview 设置为已旋转的图像版本,然后将其从 -90 度旋转到 0 度。这将适用于您已经在使用的 API。如果您拨打这两个电话,一个电话将在它之后正常工作而不会卡顿。

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

如何通过 ObjectAnimator 旋转可绘制对象?

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

于 2013-05-10T15:02:53.627 回答