![](/img/trans.png)
[英]How to change the icon color of a NavigationView when it is collapsed in Android Studio Programmatically
[英]Java android NavigationView change color icon in item
我想在NavigationView中的项目中更改颜色图标,我尝试放置一个不同的图标(具有不同颜色的图标),但是它不能正确地工作,我只能看到灰色图标,但是我放置了蓝色和红色图标
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/settings">
<menu>
<item
android:id="@+id/settings"
android:icon="@drawable/ic_action_settings"
android:title="@string/settings" />
</menu>
</item>
<item android:title="@string/filtr">
<menu>
<item
android:id="@+id/all"
android:icon="@drawable/ic_action_cut"
android:title="@string/all" />
<item
android:id="@+id/not_done"
android:icon="@drawable/ic_action_cut2"
android:title="@string/not_done" />
</menu>
</item>
<item android:title="@string/sort">
<menu>
<item
android:id="@+id/sort_default"
android:icon="@drawable/ic_action_sort"
android:title="@string/sort_default" />
<item
android:id="@+id/sort_by_distance"
android:icon="@drawable/ic_action_sort"
android:title="@string/sort_by_distance" />
</menu>
</item>
</menu>
如果要动态更改项目的颜色,则必须在“活动”代码中的某处执行以下操作:
final Menu menu = navView.getMenu();
final MenuItem menuItem = menu.findItem(id);
final Drawable itemIcon = menuItem.getIcon().mutate();
itemIcon.setColorFilter(color, PorterDuff.Mode.SRC_IN);
使用Drawable的mutate()
方法,否则您将对特定Drawable的每次迭代应用颜色更改。
编辑:
我刚刚读到您没有使用VectorDrawable。 用那个 从绘图对象的名称来看,您可以使用Google提供的图标。
您可以通过导航到Drawable资源文件夹在AndroidStudio中找到它们。 然后右键单击它,新建>矢量资产。 资产类型:材料图标。 选择您要使用的图标,然后应用上面的代码。
在您的Java代码中添加以下行:
mNavigationView.setItemIconTintList(null);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.