设置Android主题背景颜色

Sta*_*ark 103 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>
Run Code Online (Sandbox Code Playgroud)

当然还有清单

  <application
     .
     .
     .
        android:theme="@style/AppTheme" > 
</application>
Run Code Online (Sandbox Code Playgroud)

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

我已经尝试在所有xml属性之间切换white_opaque和pitch_black,但它并没有改变一件事.有什么建议?

Sta*_*ark 53

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

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

  • 或者,如果您不使用它们,则可以删除其他样式文件夹.我有同样的问题,并在'values'文件夹中使用一个styles.xml修复它.我的问题是我在清单文件中有一个主题项目(当然它覆盖了AppTheme). (4认同)

Ode*_*ner 17

<resources>

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

</resources>
Run Code Online (Sandbox Code Playgroud)


Bla*_*nka 14

打开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>
Run Code Online (Sandbox Code Playgroud)

还有一个<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
Run Code Online (Sandbox Code Playgroud)

由于 values/styles.xml 文件中的样式适用于所有版本,因此 values-v21/styles.xml 中的主题可以继承它们。因此,您可以通过从“基本”主题开始,然后在特定于版本的样式中扩展它来避免重复样式。

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