将动画侦听器设置为"活动"动画

akc*_*akc 19 animation android android-activity

我正在使用overridePendingTransition方法来执行自定义活动动画.

我想知道动画何时结束(回调/监听).

有没有直接的方法来实现这一点,如果没有,请建议我一些解决方法.

Mic*_*ann 13

我使用此方法来启动任何动画(动画XML的resID).如果nextPuzzleOnEnd为true,则在动画结束时调用方法"nextPuzzle".

该方法是我的puzzle-apps的一部分,我用它来显示任何成功的动画,然后(在anim完成之后)继续下一个谜题.

 /*
 * 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);                 
    }
  }
Run Code Online (Sandbox Code Playgroud)


Cur*_*ain 8

overridePendingTransition没有听众.就像我写了一篇早期文章一样,你宁愿使用普通的动画代替overridePendingTransition(仅适用于Android 2.0及以上版本).

您可以获得类似的效果,也可以使用普通动画做更多很酷的事情.我之前的帖子:慢慢加载XML


Ham*_*ice 7

在浏览Google以获取此问题失败后,我通过遍历所有覆盖方法找到了解决方案.

所以我做的是在进入屏幕的活动中重写此方法:

@Override
public void onEnterAnimationComplete() {
        super.onEnterAnimationComplete();
}
Run Code Online (Sandbox Code Playgroud)