AnimationListener里面的方法

时间:2016-02-02 13:29:30

标签: java android animation

我正在开展一个较旧的项目,现在我陷入了困境。

我在一个版面上有9个按钮,它们都连接到调用Intents的方法。 像这样.. button 1

public void button1_click(View view){
    Intent intent = new Intent(getApplicationContext(), Btn1.class);
    startActivity(intent);
}

现在我经过几年,我想实现一个简单的动画,按钮会做一些事情(这与动画无关)。

现在我的动画方法 - startAnimation

private void startAnimation(final View view){
       final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in);
       view.startAnimation(wigle);
       wigle.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation animation) {


            }
        });

}

我想等待动画完成然后开始我的意图。

使用此方法的button 1看起来像

public void button1_click(View view){
    startAnimation(view);
    Intent intent = new Intent(getApplicationContext(), Btn1.class);
    startActivity(intent);
}

但我的应用程序启动动画,然后启动Intent。 我应该实现什么才能不对所有按钮实现setAnimationListener

1 个答案:

答案 0 :(得分:1)

尝试这种方法

 private void startAnimation(final View view){
    final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in);
    view.startAnimation(wigle);
    wigle.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {}
        @Override
        public void onAnimationRepeat(Animation animation) {}
        @Override
        public void onAnimationEnd(Animation animation) {
            Intent intent;
            switch (view.getId()){
                case R.id.btn1_id:
                    intent = new Intent(getApplicationContext(), Btn1.class);
                    startActivity(intent);
                    break;
                case R.id.btn2_id:
                    intent = new Intent(getApplicationContext(), Btn2.class);
                    startActivity(intent);
                    break;
                .......
                ............
                ......
            }
        }
    });

}

使用方法

public void button1_click(View view){
    startAnimation(view);
    disableAllButtons();    
}