I'm using ActionBarSherlock. I have a MenuItem, and I want to use a custom selector with only that MenuItem, not the others in the ActionBar. This is the menu code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_include_location"
android:icon="@drawable/icon_place_selector"
android:showAsAction="always"
android:title="@string/menu_include_location"/>
<item
android:id="@+id/menu_send"
android:icon="@drawable/ic_send"
android:showAsAction="ifRoom|withText"
android:title="@string/menu_send"/>
</menu>
Here is the icon_place_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/location_place" android:state_pressed="false"/>
<item android:drawable="@drawable/location_no_gradient" android:state_pressed="true"/>
</selector>
The issue is that in the MenuItem, the icon is only a small part of it. Here's a screenshot of what shows up. The entire background should change, and not just the icon. How do I do that?
Use Actionbar style generator, to style your style and download zip file
In downloaded zip file open selectable_background_xxxx.xml (xxxx -> name given to your own style) file in "drawables" folder and change the drawable to nine-patch img or color code you want when pressed state is true.
You can change the selector of a particular action bar item by setting a custom ActionView in the code:
Apply these styles if you want to change the selector for all action bar items:
first you shall know, if you set
android:selectableItemBackground
in your holo style, the whole widget, i.e. a button, will have that background selector.if you just need to change your actionbar menuitem' s icon selector background, Here is a simple answer!
just set
android:actionBarItemBackground
in your holo style!hope it helpful:-)