我有一个ImageView数组,ImageViews会相互缩放。 现在我想在循环动画的onAnimationStart上播放短叮声(持续时间不到一分钟)。
一切正常但声音仅适用于第一个。
public void AnimationAtEnd() {
for (ck = 0; ck < totalCount; ck++) {
ScaleAnimation scale = new ScaleAnimation(0f, 1.6f,0f,1.6f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scale.setInterpolator(new LinearInterpolator());
scale.setStartOffset(ck * 600);
scale.setDuration(600);
scale.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
mySoundPool.play(2, 1, 1, 1, 0, 1);
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
images_cen[ck].startAnimation(scale);
}
}
}
以下是我定义 soundPool和加载声音的方式。
mySoundPool = new SoundPool(
3,
AudioManager.STREAM_MUSIC,
0
);
mySoundPool.load(this, R.raw.circuit, 1);
mySoundPool.load(this, R.raw.ding, 1);
mySoundPool.load(this, R.raw.block, 1);
我该怎么做?或者问题是什么???
PS1:
好的,我将soundPool.play()
添加到onAnimationEnd
,它运行正常。所以soundPool没有任何问题。我认为它来自动画方面
答案 0 :(得分:1)
即使您设置onAnimationStart
的{{1}},images_cen[ck].startAnimation(scale);
也会在startOffset
后不久被调用。
我建议你改用Animation
。
Animator