I want imagebutton with two states i) normal ii) touch(or click).
I have set normal image in the imagebutton background and I am trying to change image(pressed) from onclick method, but it doesn't change.
I want that if I pressed image button then image should change from normal to pressed until I press other button but it doesn't happen.
Can anyone suggest to me how can I do this with selector or at run time?
Here is my imagebuttonpanel code.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="bottom" android:id="@+id/buttonpanel"> <ImageButton android:id="@+id/buttonhome" android:layout_width="80dp" android:layout_height="36dp" android:focusable="true" android:background="@drawable/homeselector"> </ImageButton> <ImageButton android:id="@+id/buttonsearch" android:layout_height="36dp" android:layout_width="80dp" android:background="@drawable/searchselector" android:focusable="true"> </ImageButton>> <ImageButton android:id="@+id/buttonreg" android:layout_height="36dp" android:layout_width="80dp" android:background="@drawable/registerselector" android:focusable="true"> </ImageButton>> <ImageButton android:id="@+id/buttonlogin" android:layout_height="36dp" android:layout_width="80dp" android:background="@drawable/loginselector" android:focusable="true"> </ImageButton> </LinearLayout>
and my selector xml is
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--<item android:state_pressed="true" android:drawable="@drawable/homehover" /> <item android:state_focused="true" android:drawable="@drawable/homehover" /> <item android:drawable="@drawable/home" /> <item android:state_window_focused="true" android:drawable="@drawable/homehover" /> --> <item android:state_enabled="false" android:drawable="@drawable/homehover" /> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/homehover" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/homehover" /> <item android:state_enabled="true" android:drawable="@drawable/home" /> </selector>
And I have also tried to change image resource on ontouch and onclick event, but it does not help.
Create an xml file in your drawable like this :
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/btn_sendemail_disable" /> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/btn_send_email_click" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_sendemail_roll" /> <item android:state_enabled="true" android:drawable="@drawable/btn_sendemail" /> </selector>
And set images accordingly and then set this xml as background of your imageButton
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With