【问题标题】:How to close the application after animation?动画后如何关闭应用程序?
【发布时间】:2014-09-04 09:33:20
【问题描述】:

您好,我正在运行动画,2 秒后我想停止它并关闭整个应用程序。

这是我的动画:

public void onImageButtonOkClick(View view) {
            setContentView(R.layout.success);

            final ImageView mAnimLogo = (ImageView) findViewById(R.id.loading_image);
            final AnimationDrawable mAnimation = (AnimationDrawable) mAnimLogo.getDrawable();

                mAnimLogo.post(new Runnable() {
                    @Override
                    public void run() {
                        mAnimLogo.setVisibility(View.VISIBLE);
                        mAnimation.start();
                    }
                });
}

我尝试在调用计时器后使用 finish() - 应用程序关闭,但没有任何动画。

有什么建议吗?

编辑:

public void delay() {
    Timer timer = new Timer();
    try {
        synchronized(timer){
            timer.wait(2000);
            getParent().finish();
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

【问题讨论】:

  • 你可以试试thispost的解决方案。
  • 只使用动画监听器
  • 你有一个小例子吗?
  • 哎呀抱歉,您使用的是 AnimationDrawable,所以您不能使用监听器...
  • 我应该使用其他动画类型吗?

标签: android animation android-studio wait activity-finish


【解决方案1】:

我通过使用递归函数检查动画解决了这个问题

private void checkAnimation(AnimationDrawable animationDrawable){
    final AnimationDrawable animation = animationDrawable;
    int timeBetweenChecks = 300;
    Handler h = new Handler();
    h.postDelayed(new Runnable(){
        public void run(){
            if (animation.getCurrent() != animation.getFrame(animation.getNumberOfFrames() - 1)){
                checkAnimation(animation);
            } else{
                finish();
            }
        }
    }, timeBetweenChecks);
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多