2015-09-07 37 views
9

我想保留一些圖標沒有着色,有些着色。 現在我有:如何在NavigationView中將Tint設置爲某些圖標

app:itemIconTint="@color/menu_icons_selector" 

它爲所有圖標着色。

我試圖讓所有的圖標不着色

mNavigationView.setItemIconTintList(null); 

然後

mNavigationView.getMenu().getItem(4).getIcon().setColorFilter(redColor, PorterDuff.Mode.SRC_ATOP); 

到色調設置爲僅4項,但不工作 - 所有的圖標都沒有,現在有色,第四也沒有着色。

+0

我剛纔看到你已經使用'setColorFilter'。在這種情況下,如果它不起作用,我的答案可能無法幫到你(但你可以留待將來參考)。嘗試刪除'app:itemIconTint'和'setItemIconTintList'。我相信這應該起作用。還要確保它實際上被稱爲。我在onPostCreate()中運行。 – miva2

回答

5

這是爲我工作.... 這樣您可以調整個人導航MenuItem圖標顏色編程

navigation.getMenu().findItem(R.id.navItem1).getIcon().setColorFilter(Color.RED,PorterDuff.Mode.SRC_IN); 
+0

感謝這就是我一直在尋找。 – Sloosh

0

可以「包裝」的圖標作爲繪製(RES /繪製)並應用適用色調

<?xml version="1.0" encoding="utf-8"?> 
<bitmap 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/ic_menu_icon" 
    android:tint="@color/pink"/> 
+0

問題是我收到這些圖標從http請求,而不是從資源.. – diesersamat

0

如果你的圖標在ImageView可以使用setColorFilter

就像我在使用的應用程序中的這個示例一樣,在navigationDrawer中選擇圖標時,圖標被着色。

ImageView iconView = (ImageView) view.findViewById(R.id.icon); 

iconView.setColorFilter(selected ? 
    getResources().getColor(R.color.navdrawer_icon_selected_tint) : 
    getResources().getColor(R.color.navdrawer_icon_tint)); 

您也可以直接申請setColorFilterDrawable

+0

是否有可能從NavigationView的圖標ImageViews? – diesersamat

+0

我不認爲在NavigationView裏面有一個ImageView。你直接在''Drawable'上應用'setColorFilter',你可以從'getIcon()'中獲得。沒有必要獲得'ImageView',因爲'ImageView'也將它應用於'Drawable'。 – miva2

+0

正如我所說,我已經將ColorFilter設置爲物品,但它不起作用 – diesersamat

相關問題