我创建了一个模拟爆炸的动画:带有此动画的“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);
}
}
);
问题是爆炸和对话在时间上有冲突,并且在对话框打开后爆炸继续。
我希望在发生爆炸之前纠结两件事。在爆炸结束时,我想打开对话框。
有人帮我吗?
感谢您的建议。
答案 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);