Android: Поверните анимацию, верните ее в реальное состояние после окончания анимации?

Я собираюсь повернуть изображение в Моем приложении. Все работает отлично с Вращением. Но пока анимация вращения я закончится, Image wil вернется в прежнее положение. Я хочу сохранить этот образ в этом повернутом состоянии, а не возвращать его в реальное состояние.

Итак, как это сделать? Чтобы повернуть изображение, я использую код ниже:

    <?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>

и применяя его к ImgeView, например:

myImageView.startAnimation(rotateRight);

Итак, помогите мне в этом.

Ответ 1

Смотрите Как я могу оживить представление в Android и оставить его в новой позиции/размере?

Внутри тега <set используйте

android:fillAfter="true"
android:fillEnabled="true"

В общем, анимация не изменяет фактические свойства View, она только оживляет ее. Если вы хотите изменить фактические свойства, используйте AnimationListener и слушайте onAnimationEnd и внесите изменения самостоятельно.

Ответ 2

Сначала получите экземпляр анимации, используя

Animation anim = AnimationUtils.loadAnimation(context, R.anim.animation);

"R.anim.animation" относится к любой вашей анимации.

добавьте прослушиватель анимации в эту анимацию, используя.

anim.setAnimationListener 

Сделать вид видимым в методе onAnimationCompleted() AnimationListener.

Это должно работать.

Ответ 3

setFillAfter и setFillEnable - ответ, который вам нужен.