我正在尝试修改默认的背景主题颜色,这应该很容易,但令人惊讶的是我无法使其正常工作。请注意,我希望更改能够覆盖整个应用,而不仅仅是针对单个活动。这是我的代码:
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属性,但它不会改变任何东西。有什么建议吗?
答案 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”开头的样式重复 主题,然后以特定于版本的样式对其进行扩展。