Установите анимационный прослушиватель на анимацию активности
Я использую метод overridePendingTransition
для выполнения пользовательских анимаций действий.
Я хотел бы знать, когда заканчивается анимация (обратный вызов/прослушиватель).
Есть ли какой-либо прямой способ достичь этого, если нет, пожалуйста, предложите мне немного работы.
Ответы
Ответ 1
overridePendingTransition
не имеет прослушивателя. Как я писал ранее, вы скорее захотите использовать обычную анимацию вместо overridePendingTransition
(это только для Android 2.0 и выше).
Вы можете получить аналогичный эффект, и вы также можете сделать более классный материал с обычной анимацией. Мой предыдущий пост здесь: Загрузка XML медленно
Ответ 2
Я использую этот метод для запуска любой анимации (resID XML-анимации).
Если nextPuzzleOnEnd истинно, метод "nextPuzzle" вызывается, когда анимация завершена.
Этот метод является частью моих приложений-головоломок, и я использую его для отображения любой анимации успеха, а затем (после того, как анимация закончилась) продолжит следующую головоломку.
/*
* start animation (any view)
*/
private void startAnimation(View v, int resId, Boolean nextPuzzleOnEnd){
Animation anim;
if(v!=null){ // can be null, after change of orientation
anim = AnimationUtils.loadAnimation(this.getContext(),resId);
anim.setFillAfter(false);
v.setAnimation(anim);
if( nextPuzzleOnEnd ){
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation anim)
{
};
public void onAnimationRepeat(Animation anim)
{
};
public void onAnimationEnd(Animation anim)
{
nextPuzzle();
};
});
}
v.startAnimation(anim);
}
}
Ответ 3
После безуспешного просмотра Google для этого вопроса я найду решение, пройдя все переопределенные методы.
Итак, что я сделал, было переопределение этого сообщения в активности, что было на экране:
@Override
public void onEnterAnimationComplete() {
super.onEnterAnimationComplete();
}