【问题标题】:Black Android ActionBar with Custom Image background带有自定义图像背景的黑色 Android ActionBar
【发布时间】:2015-04-13 06:08:19
【问题描述】:

我需要带有徽标的自定义图像背景,问题是背景是白色的。我让它和这个一起工作

<style name="CustomActionBarTheme"
    parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style     name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/activity_grey</item>
<item name="actionMenuTextColor">@android:color/black</item>
<item name="android:actionMenuTextColor">@android:color/black</item>
<item name="android:itemTextAppearance">@style/TextAppearance</item>

现在我的问题是:我的背景颜色是白色,右上角的设置点也是白色.. 我怎样才能将这 3 个点从白色更改为黑色?我花了整个周末尝试不同的解决方案,但没有任何效果..

请记住,我需要为我的 acitonBar 保留背景图像(已经可以使用)+ 我需要将 actionBar 设置图标设置为深色..

谢谢!

ps。我的临时解决方法是我使用的是灰色背景,所以图标有点可见,但这是不对的..

【问题讨论】:

  • 可以

标签: android android-intent android-activity android-actionbar


【解决方案1】:

在res下创建一个名为menu的文件夹,并创建main_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/menu_item"
        android:icon="@drawable/ic_"
        android:title="@string/menu_item"
        app:showAsAction="always"/>  
</menu>

从这里下载黑色/灰色的项目菜单 https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/

或者你也可以自己的图标添加到你的drawable中

这在你的 Main Activity 类中

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

希望这会有所帮助:)

【讨论】:

  • 它是如何工作的?我的活动中已经有 menu.xml,你是说我在主活动中添加的任何内容对于我的所有应用程序都是一样的吗?我看到你在你的例子中做了什么。在带有图标的菜单中创建几个项目我没有问题。我在更改打开所有项目列表的主按钮的颜色时遇到问题。我想作为一种解决方法,我可以使用我的自定义图标将其设置为 1 个项目,然后单击那个我可以填充列出所有可能的解决方案,然后有不同的听众。这将是解决它的一种方法,但它是唯一的方法吗?
【解决方案2】:

像这样自定义您的Theme

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/app_color_Primary</item>
    <item name="colorPrimaryDark">@color/app_color_primary_dark</item>
    <item name="colorAccent">@color/app_color_accent</item>
</style>

&lt;item name="colorPrimary"&gt;@color/app_color_Primary&lt;/item&gt; 将呈现您的ActionBarbackground

【讨论】:

  • 好的,所以你的建议实际上改变了屏幕顶部的颜色,它可能也改变了操作栏的颜色,但你忘记了我也必须保留徽标图像,所以你的解决方案没有使用自定义图像..意思是,我的情况根本不是解决方案。不过谢谢!
  • 如果您指的是status bar&lt;item name="colorPrimaryDark"&gt;@color/app_color_primary_dark&lt;/item&gt; 将改变屏幕顶部的颜色。而且,通过此设置,您还可以在actionbar 上设置徽标/标签。毕竟,只要你有解决办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
相关资源
最近更新 更多