当前位置: 首页 > 知识库问答 >
问题:

菜单项图标更改颜色

相旭
2023-03-14

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

<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在更改颜色时的设置。

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

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

共有2个答案

庞阳波
2023-03-14

尝试此代码

@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);
    }
}
柴飞扬
2023-03-14

如果您只想更改DropDownMenu的3-Dots-Icon,您可以在Styles.xml中进行更改:

在主题样式中定义

<item name="android:actionOverflowButtonStyle">@style/MyTheme.OverFlow</item>

然后用你想要显示的图标定义溢出,而不是3DotsIcon(在你的例子中是带有3个白点的图标)

  <style name="MyTheme.OverFlow">
    <item name="android:src">@drawable/yourNewIcon</item>
  </style>
 类似资料:
  • 我已经在我的应用程序上集成了底部栏导航栏。但是当我刷的时候,Tab的颜色不会改变。很奇怪因为我有选择器文件。有什么解决这个问题的主意吗?

  • 问题内容: 我试图更改选项菜单的默认颜色为白色:我希望选项菜单上的每个项目都为黑色背景。 我已经尝试过在菜单元素中的item元素上进行类似android:itemBackground =“#000000”的拍摄,但是没有用。 我该怎么做? 问题答案: 在花费了大量时间尝试所有选项之后,我能够使用更改溢出菜单背景的应用程序的唯一方法是使用属性: ``` 从API 4.2到5.0进行了测试。

  • 我添加到产品的愿望列表中。(django项目)如果用户将一个产品添加到这个列表中,就点击一个心形图标。如果用户已经将此产品添加到列表中,则心图标为红色,如果此产品不在用户收藏夹列表中,则心图标为白色。每次移除或将图标添加到列表中时,我都想更改图标的颜色。在我写的代码中,这个操作只做一次,如果它同时再次点击,颜色不会有任何变化。

  • 编辑:我使用的不是第三方库,而是支持库中提供的NavigationView。下面是XML布局:

  • 问题内容: 如何更改图标的内部(白色)颜色 ? PS应用不是答案,因为红色适用于外部颜色,而不适用于内部感叹号白色标牌本身。 真棒字体版本是:4.7.0。 问题答案: 此图标的感叹号是透明的部分,因此一个技巧是在其后面添加背景以具有所需的颜色。当然,背景不应该覆盖整个区域,因此我们需要使用渐变来覆盖其中的一部分。 V4也是如此: 也是SVG版本: 更新 为了使答案更通用,我们还可以考虑多个背景和径

  • 我在我的应用程序中使用primeface(v.3.0)。有两列,一列是输入文本,另一列是选择菜单(下拉)。 现在我想用一些例子来改变输入文本的颜色,比如。。 1.如果选择一个菜单值被选为“单一”输入文本框,则该特定pID的颜色将仅为“绿色”。 2.如果选择一个菜单值被选为“已婚”,输入文本框颜色将仅为该特定pID的“红色”。 3.如果选择一个菜单值被选为“离异”输入文本框颜色将仅为该特定pID的“