2013-04-16 28 views
17

Jak zmienić kolor ikony przepełnienia na pasku akcji?Zmiana koloru ikon paska przycisków paska akcji

enter image description here

(Najbardziej prawo ikona)

+0

chcesz zmienić ikonę ustawień (3 kropki w pionie) lub kolor czcionki każdego elementu? – Jaguar

+2

Ważna zasada: NIE jest to przycisk ustawień, ale przycisk przepełnienia. ustawienia powinny być w przepełnieniu. – Teovald

+0

Teovald, zaktualizowałem OP – tir38

Odpowiedz

26

można użyć coś jak ten

<style name="MyTheme" parent="android:style/Theme.Holo.Light"> 
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item> 
</style> 

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow"> 
    <item name="android:src">@drawable/my_action_bTutton_overflow</item> 
</style> 

w manifestfile

<application 
    android:theme="@style/MyTheme" > 

Jeśli chcesz CHANE actionBar kolor @ stylu/MyActionBar

 <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <!-- ActionBar styles --> 
    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@color/app_theme_color</item> 

     <!-- Support library compatibility --> 
     <item name="background">@color/app_theme_color</item> 
     <item name="android:alwaysDrawnWithCache">true</item> 
     <item name="android:displayOptions">showTitle|showHome|homeAsUp</item> 
     <item name="android:icon">@android:color/transparent</item> 
    </style> 

Następnie w AndroidManifest.xml trzeba przekazać ten jeden wewnątrz tagu application.

android:theme="@style/CustomActionBarTheme" 
+0

Dzięki, tworzę własną ikonę ustawień (taką samą jak oryginał - tylko inny kolor) i ustawię ją jako src. –

+0

Dobrze to słyszeć :) –

+1

Nie do końca rozumiem androida, więc przepraszam, jeśli się nie mylę, ale żeby to zadziałało, musiałem umieścić symbol "@" przed "MyActionButtonOverflow" s rodzic. "@android: style/Widget ..." – Logan

0

można wykorzystywać swój styl niestandardowy wewnątrz dla elementu menu, jak to

<item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item> 

zdefiniować styl tak:

<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item"> 
     <item name="android:textColor">@android:color/primary_text_dark</item> 
</style> 

zobaczyć również Change the background color of the options menu i

Android: customize application's menu (e.g background color)

2

Warto również dodać, że jeśli po prostu chcesz zmienić przycisk przepełnienia na jasny lub ciemny kolor, aby przejść do koloru paska akcji, można to zrobić bez określania niestandardowej ikony.

Na ciemnym kolorem przycisku ustawić motyw jak:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item> 
</style> 

Theme.Holo.Light

Na lekkim przycisk koloru dodać DarkActionBar:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item> 
</style> 

Theme.Holo.Light.DarkActionBar

Jeśli, tak jak ja, chcesz lekki przycisk kolor, ale chcesz menu przepełnienia być lekkie można wykonać następujące czynności:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item> 
    <item name="android:actionBarWidgetTheme">@style/MyTheme.ActionBarWidget</item> 
</style> 
<!-- This helps the PopupMenu stick with Light theme while the ActionBar is in Dark theme --> 
<style name="MyTheme.ActionBarWidget" 
    parent="android:Theme.Holo.Light"> 
    <item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item> 
    <item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item> 
</style> 
3

Jeśli chcesz tylko zmienić kolor po prostu odcień go:

<style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" > 
    <item name="android:tint">@color/yourColor</item> 
    </style> 

a następnie używać go w swoim stylu:

<item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item> 
Powiązane problemy