1

押したとき、フォーカスしたとき、クリックしたときにボタンの色を変更したいのですが、何か間違ったことをしたに違いないと思います。私のコードは機能しません。誰かアドバイスをお願いします。ありがとう!

これは私soundbtn.xmlのドローアブルです:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/sound_onpress_mdp" /> <!-- pressed -->
    <item android:state_focused="true"
        android:drawable="@drawable/sound_onpress_mdp" /> <!-- focused -->
    <item android:drawable="@drawable/sound" /> <!-- default -->
</selector>

そしてImageButton、レイアウトに背景を追加しました:

<ImageButton
    android:id="@+id/imageSound"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/soundbtn"
    android:contentDescription="@string/image_desc"
    android:src="@drawable/sound" /> 

そして、これは私のJavaコードです:

private ImageButton btnSound;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_game);

    btnSound =(ImageButton) findViewById(R.id.imageSound);
    btnSound.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            btnSound.setBackgroundResource(R.drawable.soundbtn);
        }
    });
}
4

1 に答える 1

1

削除してみてください

 android:src="@drawable/sound" 

 btnSound.setBackgroundResource(R.drawable.soundbtn);

あなただけが必要です

 android:background="@drawable/soundbtn"

ターゲットのドローアブルを持つ「pressed」や「focused」などのアイテムを呼び出すためです。

于 2013-03-08T00:31:47.493 に答える