how to change the image of a button with every click?
android, button, imagebutton, xml-drawable
Solution
You can do it easily within the code.
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;
}
};
Problem
I created a `button` in the `layout` . In the `Drawable` folder I created a `XML file` named `btn01_state`. The `btn01_state.xml` is assigned to the `button` i created through "`android:background=@drawable/btn01_state`" Now, the `button` has a default `image` img1.when i `click` on the `button`, the image1 changes to img2, and once i release the clicked mouse button, the image2 again changed to img1 again. what i want to do is,to change the image of the button with evey click. for an example, initially btn01 has img01 if btn01 is pressed==> set img of btn01 to img02 and keep img02 till the btn01 is pressed again. Now, btn01 has img02 on it. When btn01 is pressed, set img01 to btn01. I hope this clarified more what i want to do. 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" /> ``` main.xml ``` <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/btn01" android:background="@drawable/btn01_state"/> ```