1

我想制作一个 MediaPlayer 并用同一个按钮控制播放和暂停。

我这样做了:

play.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try {
                if(mediaPlayer.isPlaying()) {
                    mediaPlayer.stop();
                    play.setBackgroundResource(R.drawable.play);
                } else {
                    mediaPlayer.prepareAsync();
                    play.setBackgroundResource(R.drawable.pause);
                }
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    });

这是布局代码:

<ImageView 
        android:id="@+id/play"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight=".33"
        android:layout_marginRight="6dp"
        android:src="@drawable/play" />

一切正常,除了按钮 Pause 出现并保持其全尺寸,

android:layout_weight=".33" 命令不适用于它。

问题是什么?我该如何解决?

4

2 回答 2

2

似乎您更改了背景图像而不是 ImageView 的图像。你可以试试:

  1. setImageResource 而不是 setBackgroundResource ( http://developer.android.com/reference/android/widget/ImageView.html#setImageResource(int) )

  2. 将 android:scaleType="centerInside" 添加到 ImageView xml

  3. 更改为 android:layout_width="0dp"
于 2013-05-31T14:58:29.850 回答
1
if(!mediaPlayer.isPlaying()){
    mediaPlayer.start();
    buttonPlayPause.setImageResource(R.drawable.button_pause);
}else {
    mediaPlayer.pause();
    buttonPlayPause.setImageResource(R.drawable.button_play);
}
于 2013-05-31T15:14:06.160 回答