SherlockActionBar の紫色の背景に白いアイコンのセットがあります
クリックすると濃い紫色になりたいです。
濃い紫色の同じアイコンがあるので、それらのドローアブルが押された状態で表示されるようにしたいと思います。
これで、アプリケーション テーマ全体でこれを行う方法はわかりましたが、これは、すべてのアイコンに同じドローアブルを使用する必要があることを意味します。
各アイテムの押された状態に異なるドローアブルを割り当てる方法を知りたいです。
これが私が今使っているコードです:
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>
およびスタイル/フィードアイコンスタイル:
<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>
では、どうすればいいですか?