Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android NavigationView更改项目中的颜色图标_Java_Android_Android Navigationview - Fatal编程技术网

Java android NavigationView更改项目中的颜色图标

Java android NavigationView更改项目中的颜色图标,java,android,android-navigationview,Java,Android,Android Navigationview,我想在NavigationView中更改项目中的颜色图标,我尝试放置不同的图标(具有不同颜色的图标),但效果不理想我只看到灰色图标,但放置蓝色和红色图标 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/settings">

我想在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的每次迭代应用颜色更改

编辑:

我刚看到你没有使用矢量绘图。用那个。根据您的drawables名称判断,您可以使用谷歌提供的图标

通过导航到可绘制资源文件夹,可以在AndroidStudio中找到它们。 然后右键单击它,新建>向量资源。 资源类型:材质图标。
选择要使用的图标,然后应用上面的代码。

如果要动态更改项目的颜色,必须在活动代码中的某个位置执行此操作:

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的每次迭代应用颜色更改

编辑:

我刚看到你没有使用矢量绘图。用那个。根据您的drawables名称判断,您可以使用谷歌提供的图标

通过导航到可绘制资源文件夹,可以在AndroidStudio中找到它们。 然后右键单击它,新建>向量资源。 资源类型:材质图标。
选择要使用的图标,然后应用上面的代码。

在java代码中添加以下行:

mNavigationView.setItemIconTintList(null);

在java代码中添加以下行:

mNavigationView.setItemIconTintList(null);

你在使用矢量图标吗?@VishalVaishnav无PNGAR你在使用矢量图标吗?@VishalVaishnav无png