【问题标题】:Changing Android action bar background colour更改 Android 操作栏背景颜色
【发布时间】:2015-02-25 03:06:51
【问题描述】:

由于某种原因,这个设置只是给了我默认的操作栏背景颜色。

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar"
        parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#d73830</item>
    </style>

</resources>

AndroidManifest.xml

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    ...
</application>

activity_main.xml 中,我的主题设置为“AppTheme”。

【问题讨论】:

  • 您使用的是 appcompat v21 或更早版本吗?如果是 appcompat v21,您需要定义应用的原色,它将用于工具栏。

标签: android xml


【解决方案1】:

MyActionBar 的父级错误。 它必须来自 AppCompat,如下所示:

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background" tools:ignore="NewApi">@color/red</item>
    <item name="background">@color/red</item>
</style>

【讨论】:

  • 感谢您的回复。使用该代码我得到错误:Error:(10, 63) No resource found that matches the given name (at 'android:background' with value '@color/red'). 如果我用十六进制值替换它们,我得到:Error:(10, 63) Color types not allowed (at 'background' with value '#d73830').
  • 将颜色提取到 color.xml。并使用对它的引用。更多你可以在那里阅读:stackoverflow.com/questions/15524654/…
【解决方案2】:

你可以做的是使用颜色的哈希码。这里是如何。转到这个网页

http://www.color-hex.com 选择您想要的颜色,然后复制该颜色的代码,然后粘贴到您的背景部分。通常假设您希望屏幕的背景颜色为红色,因此您必须像这样在 xml 布局文件中声明它

android:background = "#FF0508"/>

您几乎可以在要更改确切颜色的任何地方声明此代码,我认为这是最简单的方法。为什么不呢?您有一个可以获取颜色代码的网页,并且可以在任何地方使用单行代码.Delicios 不是吗?

【讨论】: