Android ImageButton颜色未更改onPressed(),onFocus()

Android ImageButton颜色未更改onPressed(),onFocus(),android,imagebutton,android-ui,android-drawable,Android,Imagebutton,Android Ui,Android Drawable,我想在按下、聚焦和单击时更改按钮颜色,但我想我一定是做错了什么,我的代码不起作用。有人能给点建议吗?谢谢 这是我在drawable中的soundbtn.xml: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/sound_onpress_m

我想在按下、聚焦和单击时更改按钮颜色,但我想我一定是做错了什么,我的代码不起作用。有人能给点建议吗?谢谢

这是我在drawable中的
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>
这是我的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);
        }
    });
}
设法除去

 android:src="@drawable/sound" 

你只需要

 android:background="@drawable/soundbtn"
因为它会调用“已按下”或“已聚焦”等具有目标可拖动项的项。

尝试删除

 android:src="@drawable/sound" 

你只需要

 android:background="@drawable/soundbtn"
因为它会调用“pressed”或“focused”之类的项目,这些项目具有目标drawable