设置Android主题背景颜色


105

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

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之间切换,但不会改变任何事情。有什么建议?


1
尝试删除Alpha通道
Blundell,2012年

好吧,我只是做了,尽管还是一样。
斯塔克

1
这是我读过的最好的解决方案 stackoverflow.com/a/33213433/963543
Ata Iravani

Answers:


58

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

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


4
或者,如果不使用其他样式的文件夹,则可以删除它们。我遇到了同样的问题,并在“值”文件夹中使用一个styles.xml进行了修复。我的问题是清单文件中有一个用于Activity的主题项(它当然覆盖了AppTheme)。
Stephen Hosking

28
<resources>

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

</resources>

5

打开res -> values -> styles.xml<style>添加此行,替换为图像路径<item name="android:windowBackground">@drawable/background</item>。例:

<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>

还有一个问题<item name ="android:colorBackground">@color/black</item>,不仅会影响您的主窗口背景,还会影响应用程序中的所有组件。在此处阅读有关自定义主题的信息

如果您想要特定于版本的样式

如果新版本的Android添加了要使用的主题属性,则可以将其添加到主题中,同时仍与旧版本兼容。您所需要的是保存在包含资源版本限定符的values目录中的另一个styles.xml文件。例如:

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中的主题可以继承它们。这样,您可以通过以“基本”主题开始然后以特定于版本的样式扩展主题来避免重复样式。

在这里阅读更多(主题文档)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.