我遇到了问题而我无法找到有效的解决方案。
所以,这是我的问题。我必须让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;
答案 0 :(得分:1)
完成后,你可以使用它来保持动画:
mAnimation.setFillEnabled(true);
mAnimation.setFillAfter(true);
答案 1 :(得分:0)
您可以做的一件事是将imageview设置为已旋转的图像版本,然后将其从-90度旋转到0度。这将适用于您已经使用的API。如果您拨打两个电话,那么它就会在没有口吃的情况下正常工作。
另一种选择是使用更高版本的API。对象动画制作动画不会将视图返回到其原始位置。更多关于这里。
How to rotate a drawable by ObjectAnimator?
代码很简单,但这不适用于姜饼。