Android 布局:按钮更改上的权重

Android 布局:按钮更改上的权重,android,android-layout,android-mediaplayer,Android,Android Layout,Android Mediaplayer,我想制作一个MediaPlayer,用同一个按钮控制播放和暂停 我这样做: play.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { if(mediaPlayer.isPlaying()) { mediaPlayer.stop();

我想制作一个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" />

“除了按钮暂停显示并保持其完整大小之外,其他一切都正常工作,”the button说

android:layout_weight=“.33” 命令不适用于它


有什么问题?我该如何修复它呢?

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

  • setImageResource而不是setBackgroundResource()

  • 将android:scaleType=“centerInside”添加到ImageView xml

  • 更改为android:layout_width=“0dp”

  • 是否确定按钮会调整大小,而不是内部图像强制调整其大小。尝试设置ImageView的内容模式。
    if(!mediaPlayer.isPlaying()){
        mediaPlayer.start();
        buttonPlayPause.setImageResource(R.drawable.button_pause);
    }else {
        mediaPlayer.pause();
        buttonPlayPause.setImageResource(R.drawable.button_play);
    }