12

いくつかのアイコンを着色しないままにし、いくつかのアイコンを着色したままにします。今私が持っています:

app:itemIconTint="@color/menu_icons_selector"

すべてのアイコンに色を付けます。

すべてのアイコンを着色しないようにしています

mNavigationView.setItemIconTintList(null);

その後

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

4番目のアイテムのみに色合いを設定しますが、これは機能しません-すべてのアイコンが着色されなくなり、4番目も着色されなくなりました。

4

3 に答える 3

2

アイコンをドローアブル(res/drawable)として「ラップ」し、適切な色合いを適用できます

<?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"/>
于 2015-09-07T11:43:06.807 に答える
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));

setColorFilterに直接申し込むこともできますDrawable

于 2015-09-07T12:04:56.087 に答える