Android Alpha Animation: альфа-значение возвращается к старому значению после завершения анимации

У меня есть ImageButton View на макете. Если пользователи нажимают кнопку ImageButton, кнопка должна исчезать.

Анимированная анимация кнопок запускается следующим образом:

public void buttonClicked(View aButton){

    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aButton.startAnimation(aAnim);

}

Это работает, но как только ImageButton исчезнет, ​​его значение Alpha Value вернется к 1.0, и кнопка снова будет видна.

Я решил это временно с помощью Animation Listener, который заставляет ButtonImage невидимым в конце анимации, но это кажется странным решением для меня.

Что мне нужно сделать, чтобы сохранить значения Alpha Value в последнем значении анимации?

Спасибо.

Ответ 1

попробуйте использовать aAnim.setFillAfter(true);

Ответ 2

Если вы хотите установить новое значение при завершении анимации, вы должны установить для параметра 'setFillAfter' значение true.

public void buttonClicked(View aButton){    
    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aAnim.setFillAfter(true);
    aButton.startAnimation(aAnim);
}

Ответ 3

Вы должны также проверить это на своем XML, для некоторых сценариев это происходит

андроид: animateLayoutChanges = "истина"