代码之家  ›  专栏  ›  技术社区  ›  Fisher

如何暂停执行代码直到动画完成

  •  1
  • Fisher  · 技术社区  · 15 年前

    final TextView shadow=(TextView)findViewById(R.id.main\u menu\u start\u game\u button\u shadow);

        final Animation animation = AnimationUtils.loadAnimation(this, R.anim.main_menu);
        shadow.startAnimation(animation);
    
        /** Ugly prototype pausing */
        final long startTime = System.currentTimeMillis();
        while ((System.currentTimeMillis() - startTime) < 600) {
            Log.i("test", Boolean.toString(animation.hasEnded()));
        }
    
    
        final Intent intent = new Intent();
        intent.putExtra(EXTRA_BUTTON_ID, START_GAME_BUTTON);
    
        setResult(RESULT_OK, intent);
    
        finish();
    }
    

    我问是因为,正如你所看到的-动画是为按钮点击动作设置的,这会杀死当前的活动,所以动画并没有完全显示出来。

    1 回复  |  直到 15 年前
        1
  •  1
  •   ognian    15 年前

    你必须定义“暂停一切”来得到答案。

    我的建议是实施 AnimationListener 并将其指向动画。然后在onAnimationEnd()中,只需调用finish()。