0

我创建了一个模拟爆炸的动画:带有此动画的“booom”图像:

Activity 上的explosion.xml HyperspaceExplosion

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">


<scale
    android:interpolator="@android:anim/bounce_interpolator"
    android:fromXScale="1.0"
    android:toXScale="2.0"
    android:fromYScale="1.0"
    android:toYScale="2.5"
    android:pivotX="50%"
    android:pivotY="50%"
    android:fillAfter="false"
    android:fillBefore="false"
    android:duration="3000"
     />
</set>

当玩家点击炸弹爆炸开始。在爆炸结束时,我想打开一个对话框。

炸弹行为的简单代码:

getBombImage().setOnClickListener(
            new View.OnClickListener() {

                MediaPlayer mp = null;

                    @Override
                    public void onClick(View v) {


                             getExplosionImage().setVisibility(View.VISIBLE);

                        if(!isSoundOff()){
                            mp = MediaPlayer.create(getApplicationContext(), R.raw.explosion);
                            mp.start();
                        }

                        getExplosionImage().startAnimation(getHyperspaceExplosion());
                        getExplosionImage().setVisibility(View.INVISIBLE);

                        showDialog(1);

                    }
                }
);

问题是爆炸和对话在时间上是冲突的,并且在对话打开后爆炸仍在继续。

我想对两个事件进行归类:在爆炸之前。在爆炸结束时,我想打开对话框。

有人可以帮助我吗?

谢谢指教。

4

1 回答 1

7

使用AnimationListener并在里面打开你的对话框onAnimationEnd()

例如像这样:

Animation a = getHyperspaceExplosion();
a.setAnimationListener(new AnimationListener() {
    public void onAnimationEnd(Animation animation) {
        showDialog(1);
    }

    // ..other listener methods here..
});
getExplosionImage().startAnimation(a);
于 2011-11-20T17:18:41.927 回答