使用可绘制资源以编程方式将图标设置为导航抽屉菜单项在 Android 中始终为黑色

Programmatically setting icon to navigation drawer menu item using drawable resource is always black in Android

我正在开发 Android 应用程序。在我的应用程序中,我使用导航抽屉和导航视图。我正在以编程方式为他们设置菜单项。我以编程方式将可绘制图像资源设置为图标。但是当我给他们设置图标时,图标总是黑色的事件我的图像资源漂亮的彩色图像。

这就是我以编程方式将图标设置为菜单的方式

Menu menu = leftDrawer.getMenu();
        SubMenu subMenu = menu.addSubMenu(MAIN_MENU_ITEM_GROUP_ID, 99, 99, "Others");

        subMenu.add(MAIN_MENU_ITEM_GROUP_ID,96,96,"Monthly Leaderboard").setIcon(R.drawable.leaderboard_icon).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                startActivity(new Intent(MainActivity.this, LeaderboardActivity.class));
                return false;
            }
        });

        subMenu.add(MAIN_MENU_ITEM_GROUP_ID,96,96,"Settings").setIcon(R.drawable.settings_icon).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                startActivity(new Intent(MainActivity.this, SettingsActivity.class));
                return false;
            }
        });

这是我得到的截图

如您所见,图标是黑色的。

这是我的原创图标之一

为什么会发生这种情况,我该如何解决才能获得彩色图标?我必须以编程方式设置它。

尝试以下代码行来解决您的问题...

yourNavigationView.setItemIconTintList(null)

并且,

如果你想给特定的颜色那么你可以使用 app:itemIconTint="@color/my_desired_colour" to NavigationView.

来改变颜色

默认色调为黑色。`