2010-08-02 2 views
19

Я использую метод overridePendingTransition для выполнения пользовательских анимаций действий.Установить анимационный прослушиватель на анимацию активности

Я хотел бы знать, когда заканчивается анимация (обратный вызов/слушатель).

Есть ли какой-либо прямой способ достижения этого, если нет, пожалуйста, предложите мне немного работы.

ответ

8

overridePendingTransition не имеет слушателя. Как я писал ранее, вы скорее хотите использовать обычную анимацию вместо overridePendingTransition (это просто для Android 2.0 и выше).

Вы можете получить аналогичный эффект, и вы также можете сделать более классный материал с обычной анимацией. Мой предыдущий пост здесь: Load XML slowly

13

Я использую этот метод для запуска любой анимации (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(); 
} 
Смежные вопросы