gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 06:51:45 25 4
gpt4 key购买 nike

我想在 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>

最佳答案

如果您想动态更改项目的颜色,您必须在 Activity 代码中的某处执行此操作:

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 中找到它们。然后右键单击它,New > Vector Asset。 Assets 类型: Material 图标。选择您要使用的图标,然后应用上面的代码。

关于Java android NavigationView 更改项目中的颜色图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com