6

Is it possible to specify a different image when the user's focus comes to an ImageButton? I want to display an image button on a LinearLayout and change the image when the user's focus comes on the button or when the user presses the button.

Thanks.

lostInTransit
  • 70,519
  • 61
  • 198
  • 274

2 Answers2

6

Yes, you can do this. What you need is a drawable xml file that defines a selector.

<selector xmlns:android...
  <item android:state_enabled="false" android:state_focused="true" android:drawable="..." />
  <item android:state_enabled="true" android:state_focused="false" android:drawable="..." />
</selector>

Then, use the id of this drawable XML when specifying the ImageButton in your layout XML.

Nate
  • 4,724
  • 1
  • 21
  • 9
0

The precedent answer did not work for me. Here is the code I found somewhere else:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
         <item android:drawable="@drawable/refresh_pushed" android:state_pressed="true" />
         <item android:drawable="@drawable/refresh" />
    </selector>

You can also add a state for foccussed objects by adding a line and using:

android:state_focused="true"

Loic O.
  • 486
  • 2
  • 7
  • 22