设置 Android 主题背景颜色

我试图修改默认的背景主题颜色,这应该很容易,但令人惊讶的是,我不能得到它的工作。请注意,我希望改变是整个应用程序,而不仅仅是一个单一的活动。这是我的代码:

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 _  摸黑和沥青黑之间进行切换,但是它没有改变任何东西?

188419 次浏览

Okay turned out that I made a really silly mistake. The device I am using for testing is running Android 4.0.4, API level 15.

我正在编辑的 styles.xml 文件位于缺省值文件夹中。我在 value-v14文件夹中编辑了 styles.xml,现在它可以正常工作了。

<resources>


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


</resources>

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

There is a <item name ="android:colorBackground">@color/black</item> also, that will affect not only your main window background but all the component in your app. Read about customize theme here.

如果你想要 版本特定的样式:

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

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

因为 value/styles.xml 文件中的样式对所有人都可用 值-v21/styles.xml 中的主题可以继承它们 这样,您可以避免重复的样式开始与“基地” 主题,然后以特定于版本的样式扩展它。

Read more here(doc in theme).