Ответ 1
попробуйте использовать aAnim.setFillAfter(true);
У меня есть 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 в последнем значении анимации?
Спасибо.
попробуйте использовать aAnim.setFillAfter(true);
Если вы хотите установить новое значение при завершении анимации, вы должны установить для параметра '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);
}
Вы должны также проверить это на своем XML, для некоторых сценариев это происходит
андроид: animateLayoutChanges = "истина"