android - 菜单项图标更改颜色
问题描述
我创建了一个包含单个项目的菜单。
<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 设置为从不,因此单击时会显示一个菜单,这就是我想要的,但图标变为深灰色。如果我将此选项设置为“始终”,则图标将变为白色,但我会丢失下拉菜单。
如何在保持图标为白色的同时保持下拉菜单?
解决方案
试试这个代码
@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);
}
}
推荐阅读
- angular - Angular PrimeNg- SideNav 回调关闭
- .net - 企业库日志记录块不记录
- python - 无法在 Centos 上安装 PyGreSql
- r - Roxygen - R6 方法
- google-chrome - VSCode Chrome Debugger disable web security
- c# - DateTime Format Issue in c# for multiple Application on same IIS server
- c++ - 我可以根据算术运算编写关系运算符吗?
- python - 将字典与变量进行比较
- angular - 来自java GET的错误日期
- python - spaCy 共指解析 - 命名实体识别 (NER) 返回唯一实体 ID?