如何在每次点击时更改按钮的图像?

And*_*pha 6 android button imagebutton xml-drawable

我创建了一个buttonlayout.在Drawable我创建了一个XML file名为的文件夹中btn01_state.将btn01_state.xml被分配给button通过创建我" android:background=@drawable/btn01_state"

现在,button有一个默认的imageimg1.当我click在上面时button,image1变为img2,一旦我释放了点击的鼠标按钮,image2再次变为img1.

我想要做的是,用evey点击改变按钮的图像.

例如,最初btn01有img01

如果按下btn01 ==>将img of btn01设置为img02并保持img02直到再次按下btn01.现在,btn01上有img02.

按下btn01时,将img01设置为btn01.

我希望这更能澄清我想做的事情.

btn_selector:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_blue"
      android:state_pressed="true" />
<item android:drawable="@drawable/ic_launcher"
      android:state_focused="true" />
<item android:drawable="@drawable/ic_launcher" />
Run Code Online (Sandbox Code Playgroud)

main.xml中

<Button 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id="@+id/btn01"
    android:background="@drawable/btn01_state"/>
Run Code Online (Sandbox Code Playgroud)

Mur*_*fiz 18

您可以在代码中轻松完成.

boolean isPressed = false;
button.setOnClickListener(buttonListener);

OnClickListener buttonListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(isPressed)
           button.setBackgroundResource(R.drawable.icon1);
        else
           button.setBackgroundResource(R.drawable.icon2);

        isPressed = !isPressed;
   }
};
Run Code Online (Sandbox Code Playgroud)