2012-01-26 15 views
23

アクションバーのアイテムにタッチすると、ロールオーバーエフェクトの色を変更しようとしています。 4.0.2のGalaxy Nexusでは、ターコイズ色の濃淡があり、別の色にしたいと考えています。Android 3.0以降のActionBarのタッチエフェクトの色を変更するには

ここでは、ナビゲーションタブではなく、ActionBarアイテムについて説明しています。

私は互換ライブラリの下で動作させましたが、Android 3.0以上、つまり「実際の」ActionBarでは、これを行う方法を理解できません。

これを達成できるかどうか、どのように達成するのかは誰にも分かりますか?

答えて

45

ネイティブアクションバーは、アクションアイテムの背景の描画にテーマ属性selectableItemBackgroundを使用します。これは状態リストの描画可能でなければなりません。

ここTheme.Holoでの宣言です:

<style name="Theme.Holo"> 
    <!-- bunch of things --> 
    <item name="android:selectableItemBackground">@android:drawable/item_background_holo_dark</item> 
    <!-- bunch of things --> 
</style> 

とその描画可能なXML:あなたの迅速な対応のための

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
      android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> 
    <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" /> 
    <item android:state_focused="true" android:state_enabled="false"        android:drawable="@drawable/list_selector_disabled_holo_dark" /> 
    <item android:state_focused="true"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" /> 
    <item android:state_focused="false"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" /> 
    <item android:state_focused="true"                android:drawable="@drawable/list_focused_holo" /> 
    <item                       android:drawable="@color/transparent" /> 
</selector> 
+0

おかげで。しかし、スタイルのこの属性を エラーが発生しました:指定された名前と一致するリソースが見つかりませんでした:attr 'selectableItemBackground'。どのようにしてこの属性を無効にできますか? – Alf

+0

申し訳ありません、あなたは 'name =" android:selectableItemBackground "'を使う必要があります。デフォルトのパッケージはすでに 'android'なので、テーマのAndroidプラットフォーム版では指定されていません。私は答えを更新しました。 –

+0

完璧に動作します、ありがとう! – Alf

関連する問題