更改操作栏设置图标颜色

问题描述 投票:21回答:5

如何才能改变操作栏中的菜单图标的颜色吗?

(最右边的图标)

java android
5个回答
31
投票

您可以使用这样的事情

<style name="MyTheme" parent="android:style/Theme.Holo.Light">
     <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/my_action_bTutton_overflow</item>
</style>

AndroidManifest.xml

<application
    android:theme="@style/MyTheme" >

如果你想改变动作条的颜色@风格/ MyActionBar

        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/app_theme_color</item>

        <!-- Support library compatibility -->
        <item name="background">@color/app_theme_color</item>
        <item name="android:alwaysDrawnWithCache">true</item>
        <item name="android:displayOptions">showTitle|showHome|homeAsUp</item>
        <item name="android:icon">@android:color/transparent</item>
    </style>

然后在你的AndroidManifest.xml您需要参考您的application标签内的这一个。

    android:theme="@style/CustomActionBarTheme"

17
投票

如果你只是想改变颜色,你可以简单地染成它:

  <style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" >
    <item name="android:tint">@color/yourColor</item>
  </style>

然后在你的风格使用它:

 <item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item>

4
投票

如果您使用的操作栏的使用:

        toolbar.getOverflowIcon().setColorFilter(Color.WHITE , PorterDuff.Mode.SRC_ATOP);

2
投票

这也是值得补充的是,如果你只是想改变溢出按钮,光或暗,颜色要与你的动作条的颜色这可以在不指定自定义图标来完成去。

对于暗扣颜色设置你的主题为:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
</style>

对于光按钮添加颜色DarkActionBar:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
</style>

如果像我一样,你想光按钮的颜色,但你想要的溢出菜单是光,你可以做到以下几点:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
    <item name="android:actionBarWidgetTheme">@style/MyTheme.ActionBarWidget</item>
</style>
<!-- This helps the PopupMenu stick with Light theme while the ActionBar is in Dark theme -->
<style name="MyTheme.ActionBarWidget"
    parent="android:Theme.Holo.Light">
    <item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item>
    <item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item>
</style>

0
投票

你可以在里面使用自定义风格的菜单项,这样

<item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>

这样定义的样式:

<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
        <item name="android:textColor">@android:color/primary_text_dark</item>
</style>

另见Change the background color of the options menu

Android: customize application's menu (e.g background color)


0
投票

在与父母的ActionButton溢出插件styles.xml下面创建样式,然后使用该主题中,您正在使用其中显示的工具栏,活动样式。

第1步)为actionButtonOverflow创建风格

<style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" >
        <item name="android:tint">your color</item>
</style>

步骤2)在使用动作条活动使用这种风格

<style name="CustomMainActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item>
</style>
© www.soinside.com 2019 - 2024. All rights reserved.