ImageButton背景不变

时间:2016-06-11 16:35:55

标签: android android-mediaplayer

如果播放音乐时单击播放按钮音乐应暂停,按钮图像应更改为暂停按钮,反之亦然

我不知道逻辑上有什么问题请检查。

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

3 个答案:

答案 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;
          }
}

在某种程度上,它在逻辑上