2016-07-18 39 views
7

appcompat-v7 toolbar kullanıyorum ve simgeleri içeren bir menü ekledim. Araç Çubuğu Eylem Düğmesi Simge rengi

Benim menu_items.xml

<item 
    android:id="@+id/quit" 
    android:title="Quit" 
    android:icon="@drawable/ic_power" 
    android:orderInCategory="700" 
    app:showAsAction="never"/> 
<item 
    android:id="@+id/app_settings" 
    android:orderInCategory="600" 
    android:icon="@drawable/ic_cog" 
    app:showAsAction="never" 
    android:title="Settings"/> 
<item 
    android:id="@+id/help" 
    android:orderInCategory="500" 
    android:title="Help" 
    android:icon="@drawable/ic_help" 
    app:showAsAction="always" /> 
<item 
    android:id="@+id/logout" 
    android:orderInCategory="400" 
    android:title="Logout" 
    android:icon="@drawable/ic_logout" 
    app:showAsAction="ifRoom" /> 
<item 
    android:id="@+id/tip" 
    android:orderInCategory="300" 
    android:title="Give Tip" 
    android:icon="@drawable/ic_coffee" 
    app:showAsAction="ifRoom" /> 
<item 
    android:id="@+id/withdraw" 
    android:orderInCategory="200" 
    android:title="Withdraw" 
    android:icon="@drawable/ic_bank" 
    app:showAsAction="ifRoom" /> 
<item 
    android:id="@+id/deposit" 
    android:orderInCategory="100" 
    android:title="Deposit" 
    android:icon="@drawable/ic_cash_multiple" 
    app:showAsAction="ifRoom" /> 

simgeler

aslen siyah ama

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 

Bunun yerine siyah simgeleri gösterir kullanırsanız ben araç çubuğunda beyaz olarak görünür bekliyordum. black icons

Benim toolbar.xml

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_width="match_parent" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    android:background="?attr/colorPrimary"/> 

nasıl simgeleri beyaz görünmesine neden olabilir?

Düzenleme: taşan öğenin simgesi dahil araç çubuğunda gösterilen

simgeler i rengini değiştirmek istediğim tek simgelerdir .. Tüm simgeler, ... overflow items

+1

Neden downvote? Ben burada gönderme önce bu soruya cevap bulmak için sadece 5 saat aradı .. –

+2

Sadece simge görüntüleri beyaz yapamazsınız? Bu çok daha basit. –

cevap

5

elle ayarlayabilirsiniz

MenuItem favoriteItem = menu.findItem(R.id.action_favorite); 
Drawable newIcon = (Drawable)favoriteItem.getIcon(); 
newIcon.mutate().setColorFilter(Color.argb(255, 200, 200, 200), PorterDuff.Mode.SRC_IN); 
favoriteItem.setIcon(newIcon); 
: belirli simge için bu

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     for(int i = 0; i < menu.size(); i++){ 
      Drawable drawable = menu.getItem(i).getIcon(); 
      if(drawable != null) { 
       drawable.mutate(); 
       drawable.setColorFilter(getResources().getColor(R.color.whiteColor), PorterDuff.Mode.SRC_ATOP); 
      } 
     } 

     return true; 
    } 

gibi

Yönlendirme çalışma zamanınızı değiştirirseniz, koşulu kullanarak yönlendirmeyi kontrol edebilir ve bu durumda menü rengini ayarlayabilirsiniz. Böyle

:

ekranınızı döndürmek istemiyorsanız, sadece böyle manifest dosyasında ayarlayabilir veya
@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    // Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 

     // here you can set menu item color if it landScape 

    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();   
    } 
} 

:

<activity android:name=".activities.MainActivity" 
      android:screenOrientation="portrait"> 

veya belirli öğeler için itemIconTint kullanabilirsiniz:

<item 
    android:id="@+id/quit" 
    android:title="Quit" 
    android:icon="@drawable/ic_power" 
    android:orderInCategory="700" 
    **app:itemIconTint="@color/black"** 
    app:showAsAction="never"/> 
<item 
    android:id="@+id/app_settings" 
    android:orderInCategory="600" 
    android:icon="@drawable/ic_cog" 
    app:showAsAction="never" 
    **app:itemIconTint="@color/black"** 
    android:title="Settings"/> 
+0

Bu taşma simgelerini de değiştirecek mi? Coz Taşma menüsünde simgelerim var. –

+0

evet .. değişecek, sadece bu kodu kopyalayacaktır .. ve bileceksiniz. –

+0

Sadece denedim ve taşma simgelerini de değiştirdi ..Sadece gösterilen eylem düğmesi simgelerini rengini değiştirmeyi, ancak taşan menü simgelerini değil istiyorum. –

0

Kişisel Ana tema

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 

    <item name="android:popupMenuStyle">@style/PopupMenu</item> 
    </style> 

PopUp ya da menü öğesi tema istediğiniz daha pop-up, büyüklüğü arka gibi bazı ve

<style name="PopupMenu" parent="android:Theme.Holo.Light"> 
    <item name="android:popupBackground">@android:color/white</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textSize">9sp</item> 


    <item name="textAppearanceLargePopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item> 
    <item name="textAppearanceSmallPopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item> 
    </style> 

Renk kaldırmak aksi isterseniz ekleyebilir PopupMenu eğer

<color name="white">#ffffffff</color> 
+0

popupMenu tamam .. Sadece Renk çubuğunu ayarlamak istediğiniz araç çubuğundaki ... –