1

MediaPlayer を作成し、Play と Pause を同じボタンで制御したいと考えています。

これは私がしました:

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" />

一時停止ボタンが表示され、フルサイズを維持するという事実を除いて、すべてが正常に機能します。

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 に答える