我在 Sherlock ActionBar 中有一组紫色背景的白色图标
我想让它们在被点击时变成深紫色。
我有相同的深紫色图标,所以我想让这些可绘制对象显示在按下状态。
现在,我知道如何在整个应用程序主题中执行此操作,但这意味着我必须对所有图标使用相同的可绘制对象。
我想知道如何为每个项目的按下状态分配不同的可绘制对象。
这是我现在使用的代码:
在 styles.xml 中
<style name="Theme.SherlockCustom" parent="@style/Theme.Sherlock.Light">
<item name="actionBarItemBackground">@drawable/action_bar_item_background</item>
<item name="android:icon">@android:color/transparent</item>
<item name="displayOptions">showCustom</item>
<item name="android:minWidth">0dp</item>
<item name="android:padding">0dp</item>
</style>
action_bar_item_background.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/light_purple" android:state_pressed="true"/>
<!-- pressed -->
<item android:drawable="@android:color/transparent"/>
<!-- default -->
</selector>
这是不起作用的部分(尝试设置一个样式来定义特定按钮的新外观):
feed_icon.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/ic_action_content_paste"
android:right="@dimen/action_bar_icons_padding_right"
android:theme="@style/feediconstyle"></item>
</layer-list>
和样式/ feediconstyle:
<style name="feediconstyle" parent="@style/Theme.Sherlock.Light">
<item name="actionBarItemBackground">@drawable/feed_icon_background</item>
<item name="displayOptions">showCustom</item>
</style>
这个特殊的图标不符合新的风格,即
feed_icon_background:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/feed_icon_purple" android:state_pressed="true"/>
<!-- pressed -->
<item android:drawable="@android:color/transparent"/>
<!-- default -->
</selector>
那么我该怎么做呢?