设置Android主题背景颜色

时间:2012-08-02 14:32:42

标签: android android-theme

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

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

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

3 个答案:

答案 0 :(得分:53)

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

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

答案 1 :(得分:10)

<resources>

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

</resources>

答案 2 :(得分:6)

打开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>,它将不仅影响您的主窗口背景,而且还会影响您应用程序中的所有组件。了解有关自定义主题here的信息。

如果您想要version specific styles

如果新版本的Android添加了您想要的主题属性 使用时,您可以将它们添加到主题中,同时仍与 旧版本。您所需要做的是将另一个styles.xml文件保存在 包含资源版本限定符的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中的主题可以继承它们。如 这样,您可以避免以“ base”开头的样式重复 主题,然后以特定于版本的样式对其进行扩展。

Read more here(doc in theme)