如果播放音乐时单击播放按钮音乐应暂停,按钮图像应更改为暂停按钮,反之亦然
我不知道逻辑上有什么问题请检查。
public void onClick(View v) {
switch (v.getId())
{
case R.id.mpPlay: // bPlay
if(!mediaPlayer.isPlaying())
{
mediaPlayer.start();
bPlay.setBackgroundResource(R.drawable.play);
}
if(mediaPlayer.isPlaying())
{
mediaPlayer.pause();
bPlay.setBackgroundResource(R.drawable.pause);
}
break;
}
答案 0 :(得分:0)
尝试使用
setImageResource(id);
或
setImageDrawable(ContextCompat.getDrawable(context, id));
答案 1 :(得分:0)
您应该用“else”替换第二个“if”语句。执行代码时,媒体播放器不会播放,因此您的第一个“if”语句将被执行。这将打开您的媒体播放。但是,当您的代码进入第二个“if”语句时,您的媒体将会播放,因此会立即关闭。用“else”替换第二个“if”语句将确保在任何给定的onClick()上只执行其中一个选项(打开媒体播放或关闭媒体播放)。
if(!mediaPlayer.isPlaying())
{
mediaPlayer.start();
bPlay.setBackgroundResource(R.drawable.play);
}
else
{
mediaPlayer.pause();
bPlay.setBackgroundResource(R.drawable.pause);
}
答案 2 :(得分:0)
据我了解
ImageButton bPlay = (ImageButton)findViewById(R.id.mpPlay);
//mpPlay is id of your ImageButton for play button in xml file
很好。
所以,试试这个:
public void onClick(View v){
switch (v.getId()){
case R.id.mpPlay:
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();
bPlay.setImageResource(R.drawable.pause);
//pause icon during player plaing
} else if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
bPlay.setImageResource(R.drawable.play);
//play icon during player on pause
}
break;
}
}
在某种程度上,它在逻辑上