首页 > 解决方案 > 菜单项图标更改颜色

问题描述

我创建了一个包含单个项目的菜单。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/syncButton"
        android:title="Sync"
        android:icon="@drawable/ic_sub_menu"
        app:showAsAction="never"/>
</menu>

这用于我在工具栏中的一些活动,单击它时会下拉菜单,目前只有一个选项,但将来可能会更多。

除了图标,一切都很好,它是传统的白色 3 点的矢量图像。取决于什么 showAsAction" 设置为它改变颜色。

目前 showAsAction 设置为从不,因此单击时会显示一个菜单,这就是我想要的,但图标变为深灰色。如果我将此选项设置为“始终”,则图标将变为白色,但我会丢失下拉菜单。

如何在保持图标为白色的同时保持下拉菜单?

标签: androidvector-graphics

解决方案


试试这个代码

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
    menuInflater.inflate(R.menu.menu_confirm, menu);
    MenuItem action_done = menu.findItem(R.id.action_done);
    action_done.setIcon(R.drawable.ic_filter);
    menuIconColor(action_done, Color.WHITE);
    super.onCreateOptionsMenu(menu, menuInflater);
}

public void menuIconColor(MenuItem menuItem, int color) {
    Drawable drawable = menuItem.getIcon();
    if (drawable != null) {
        drawable.mutate();
        drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
    }
}

推荐阅读