设置 Android 主题背景颜色

Posted

技术标签:

【中文标题】设置 Android 主题背景颜色【英文标题】:Setting Android Theme background color 【发布时间】:2012-07-31 13:19:31 【问题描述】:

我正在尝试修改默认背景主题颜色,这应该很容易,但令人惊讶的是我无法让它工作。请注意,我希望更改适用于整个应用程序,而不仅仅是单个活动。这是我的代码:

styles.xml

<resources>

    <color name="white_opaque">#FFFFFFFF</color>
    <color name="pitch_black">#FF000000</color>

    <style name="AppTheme" parent="android:Theme.Light">
        <item name="android:background">@color/white_opaque</item>
        <item name="android:windowBackground">@color/white_opaque</item>
        <item name="android:colorBackground">@color/white_opaque</item>
    </style>

</resources>

当然还有清单中

<application
    .
    .
    .
    android:theme="@style/AppTheme" > 
</application>

我在修改主题时查阅的 Android 文档: http://developer.android.com/guide/topics/ui/themes.html

我已经尝试为所有 xml 属性在 white_opaque 和 pitch_black 之间切换,但它并没有改变任何东西。有什么建议吗?

【问题讨论】:

尝试移除 alpha 通道 好吧,我刚刚做了,但还是一样。 这是我读过的最好的解决方案***.com/a/33213433/963543 【参考方案1】:

好吧,原来我犯了一个非常愚蠢的错误。我用于测试的设备运行的是 Android 4.0.4,API 级别 15。

我正在编辑的 styles.xml 文件位于默认值文件夹中。我在 values-v14 文件夹中编辑了 styles.xml,现在一切正常。

【讨论】:

或者,如果您不使用其他样式文件夹,您可以删除它们。我遇到了同样的问题,并在“values”文件夹中用一个 styles.xml 修复了它。我的问题是我在清单文件中有一个 Activity 的主题项(它当然会覆盖 AppTheme)。【参考方案2】:
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo.NoActionBar">
        <item name="android:windowBackground">@android:color/black</item>
    </style>

</resources>

【讨论】:

【参考方案3】:

打开res -&gt; values -&gt; styles.xml 并在您的&lt;style&gt; 中添加此行,替换为您的图像路径&lt;item name="android:windowBackground"&gt;@drawable/background&lt;/item&gt;。示例:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground">@drawable/background</item>
    </style>

</resources>

还有一个&lt;item name ="android:colorBackground"&gt;@color/black&lt;/item&gt;,它不仅会影响您的主窗口背景,还会影响您应用中的所有组件。阅读自定义主题here。

如果你想要version specific styles:

如果新版本的Android添加了你想要的主题属性 使用,您可以将它们添加到您的主题中,同时仍然兼容 旧版本。您所需要的只是另一个保存在 values 包含资源版本限定符的目录。为了 示例:

res/values/styles.xml        # themes for all versions
res/values-v21/styles.xml    # themes for API level 21+ only

因为 values/styles.xml 文件中的样式可供所有人使用 版本,您在 values-v21/styles.xml 中的主题可以继承它们。作为 这样,您可以通过以“基础”开头来避免重复样式 主题,然后以特定于版本的样式对其进行扩展。

Read more here(doc in theme).

【讨论】:

以上是关于设置 Android 主题背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio主题设置颜色背景配置

Android ImageButton 背景颜色

Android:默认 AppTheme 背景颜色

android studio中的任何视图都会根据设备默认主题更改背景颜色

如何在 Android 4.2 中更改操作栏选项菜单的背景颜色?

怎么设置android背景颜色