Android-如何设置所有屏幕的背景色?


77

维护字体和颜色样式的最佳实践是什么。我制作了一个colors.xml文件,该文件曾经用来更改按钮等单独元素上的颜色,但我不确定Android如何希望开发人员组织其样式。

例如,我希望所有屏幕都具有相同的背景色。我怎么做?是否需要为每个“活动”布局xml指定内容?还是其他地方?我该如何完成?


您创建样式并将其应用于您的UI元素
zapl 2012年

@zapl rigth是我在做什么。我想知道的是如何将样式应用于整个屏幕。像每个屏幕的背景色一样吗?
GeekedOut'4

您可以将背景主题应用于每个最顶部的LinearLayout(或使用的任何对象),也可以通过活动主题来实现
zapl 2012年

@zapl哦,是的,有帮助!谢谢!
GeekedOut'4

Answers:


195

确保每个活动具有相同背景色的一种快速简便的方法是为您的活动创建一个主题以供使用。该主题将指定android:windowBackground。

首先在values / colors.xml中定义颜色

<resources>
    <color name="background">#FF0000 </color>
</resources>

在引用该颜色的res / values中创建一个themes.xml文件:

<resources>
 <style name="MyTheme" parent="@android:style/Theme.Light"> 
  <item name="android:windowBackground">@color/background</item>
 </style>
</resources>

...,然后在您的AndroidManifest.xml中将此指定为您要使用的活动的主题。

 <activity
        android:name=".MyActivity"
        android:theme="@style/MyTheme" />

4
我在themes.xml中实现此代码时遇到错误,因为它在此处无法识别十六进制颜色代码:<item name =“ android:windowBackground”>#FF0000 </ item>
Brian J

9
只需将颜色十六进制放在@color资源中,然后引用它即可<item name =“ android:windowBackground”> @ color / my_background </ item>
Chris.D

2
这不是正确的答案。请更正您的答案以匹配Chris的评论NPike
Joris Weimar

styles.xml改为编辑样式。
雅各布·布拉哈

windowBackground无效。我认为此标志仅用于设置/更改可绘制对象而不是颜色!
dudi

20

更新您的Android Studio到1.4,它具有内置主题编辑器。如下图所示

在此处输入图片说明


2
如何在Android 2.1预览版中打开Theme Editir
Sonu Kumar

打开styles.xml文件,您将在右上角的编辑器文本中看到“打开”。
昆丹·罗伊

但是我的情况隐藏和问题解决,当重新启动android studio时,谢谢你显示马赫
Sonu Kumar

1
要打开它,请转到工具-> Android->主题编辑器。
艾伯特·维拉·卡尔沃

3
编辑器已不受支持。自Android Studio 3.3起已将其删除。
finder2 '19

8

您还可以在AndroidManifest.xml的应用程序级别设置背景

<application
   ...
   android:theme="@style/MyTheme">

(注意:由于我的声誉太低,我不能以此作为已接受答案的注释)。

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.