动画android之后的showDialog

时间:2011-11-20 17:14:39

标签: android android-animation showdialog

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

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);

                    }
                }
);

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

我希望在发生爆炸之前纠结两件事。在爆炸结束时,我想打开对话框。

有人帮我吗?

感谢您的建议。

1 个答案:

答案 0 :(得分:7)

使用AnimationListener并在onAnimationEnd()内打开对话框。

例如:

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

    // ..other listener methods here..
});
getExplosionImage().startAnimation(a);