Android:完成动画后,旋转动画会恢复到真实状态吗?

Shr*_*jan 15 animation android android-animation android-layout

我要在我的应用程序中旋转图像.旋转时所有工作都很好.但是当我旋转动画完成时,Image将返回其先前的位置.我想要的是将图像保持为旋转状态而不是让它恢复到真实状态.

那么如何才能实现呢?要旋转图像,我使用下面的代码:

    <?xml version="1.0" encoding="utf-8"?>

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0"
    android:toDegrees="30"
    android:duration="2000">

</rotate>
Run Code Online (Sandbox Code Playgroud)

并将其应用于ImgeView,如:

myImageView.startAnimation(rotateRight);
Run Code Online (Sandbox Code Playgroud)

所以,请帮我解决这个问题.

Raj*_*esh 28

请参阅如何在Android中为视图设置动画并使其保持新的位置/大小?

<set标签内部,使用

android:fillAfter="true"
android:fillEnabled="true"
Run Code Online (Sandbox Code Playgroud)

通常,动画不会改变视图的实际属性,它只会动画它.如果要更改实际属性,请使用AnimationListener并侦听onAnimationEnd并自行进行更改.

  • 此属性不需要:android:fillEnabled ="true".这个属性需要这个:android:fillBefore.看看这个:https://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter. (2认同)
  • 只是想强调`fillAfter`和`fillEnabled`应放在`<set`标签而不是`<rotate`标签内,否则将无效. (2认同)