安卓 - 如何设置所有屏幕的背景颜色?

90

如何最好地维护字体和颜色样式?我创建了一个colors.xml文件,用于更改不同元素(例如按钮)的颜色,但我不确定Android希望开发人员如何组织他们的样式。

例如,我希望所有屏幕都具有相同的背景颜色。我应该如何做到这一点?我需要为每个Activity布局xml指定吗?还是其他地方?我该如何实现它?


你可以创建样式,并将它们应用于你的UI元素。 - zapl
@zapl 对的,这就是我正在做的。我想知道如何将样式应用于整个屏幕。就像为每个屏幕设置背景颜色一样? - GeekedOut
你可以为每个顶层的LinearLayout(或者其他你使用的布局)应用一些背景主题,或者通过一个[为你的活动定制的主题](http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme)来实现。 - zapl
3个回答

218

确保每个Activity具有相同背景颜色的快速简便方法是,创建一个主题供Activity使用。该主题将指定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中实现此代码时,我遇到了一个错误,因为它无法识别这里的十六进制颜色代码:#FF0000 - Brian Var
9
只需将颜色十六进制代码放入@color资源中,然后这样引用它:<item name="android:windowBackground">@color/my_background</item>。 - Chris.D
2
这不是正确的答案。请根据Chris的评论NPike修正您的答案。 - Joris Weimar
请在 styles.xml 中编辑样式。 - Jakub Bláha
windowBackground没有效果。我认为这个标志只是用来设置/更改可绘制物而不是颜色! - dudi

20

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

在这里输入图片描述


2
如何在Android 2.1预览版中打开主题编辑器 - Sonu Kumar
打开styles.xml文件,你会看到右上角有“在编辑器中打开”文本,请单击它。 - kundan roy
但是我的情况隐藏了,当重新启动Android Studio时解决了问题,谢谢展示机。 - Sonu Kumar
1
要打开它,请转到工具 -> Android -> 主题编辑器。 - Albert Vila Calvo
3
编辑器已经停止支持。自从 Android Studio 3.3 起,它已被移除。 - finder2

9
你可以在AndroidManifest.xml文件中设置应用程序级别的背景。
<application
   ...
   android:theme="@style/MyTheme">

(注:由于我的声望太低,我无法将此作为已接受答案的评论。)
注意:我不能将这个作为已接受答案的评论,因为我的声望太低。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接