2010-08-02 102 views
19

我正在使用overridePendingTransition方法执行自定义“动画”动画。将动画侦听器设置为活动动画

我想知道动画什么时候结束(回调/侦听器)。

是否有任何直接的方式来实现这一点,如果不是请建议我一些工作。

回答

8

overridePendingTransition没有监听器。就像我之前写过的一篇文章,你宁愿使用一个普通的动画来代替overridePendingTransition(这只适用于Android 2.0及更高版本)。

你可以得到一个类似的效果,你也可以做一个普通的动画更酷的东西。我之前的帖子在这里:Load XML slowly

13

我使用这种方法来启动任何动画(动画XML的resID)。 如果nextPuzzleOnEnd为true,则在动画完成时调用“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

在没有成功浏览谷歌这个问题后,我找到了一个解决方案,通过所有覆盖方法。

所以我做了什么,是在活动覆盖这个消息,什么进入屏幕:

@Override 
public void onEnterAnimationComplete() { 
     super.onEnterAnimationComplete(); 
}