我有一个动画xml文件:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/anim"
android:oneshot="true" >
<item
android:drawable="@drawable/pik1"
android:duration="150"/>
<item
android:drawable="@drawable/pik2"
android:duration="150"/>
</animation-list>
我想要做的是在媒体播放器正在播放时启动并继续运行动画,并在媒体播放完成后停止动画。
例如:媒体播放器正在播放5秒钟的声音,我想播放动画5秒然后停止播放。
这是我在主要活动中的jave代码:
piks.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (play != null) {
play.reset();
play.release();
}
play = MediaPlayer.create(pikselActivity.this,
R.raw.pisound);
play.start();
frame.start();
}
});
frame.start()启动动画,但声音结束后,动画会继续运行。如何在声音结束时停止动画?
答案 0 :(得分:2)
您需要实现OnCompletionListener
play.setOnCompletionListener(new
OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
frame.stop();
}
});
答案 1 :(得分:1)
在您的媒体播放器上放置一个onCompletionListener()。在媒体回调中完成添加
frame.clearAnimation();
像这样:
if (play != null) {
play.reset();
play.release();
}
play = MediaPlayer.create(pikselActivity.this,R.raw.pisound);
play.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion (MediaPlayer mp){
frame.clearAnimation();
}
});
play.start();
frame.start();