【问题标题】:Android - how to set background color of all screens?Android - 如何设置所有屏幕的背景颜色?
【发布时间】:2012-04-26 18:16:09
【问题描述】:

保持字体和颜色样式的最佳做法是什么。我制作了一个 colors.xml 文件,我用它来更改按钮等单独元素的颜色,但我不确定 Android 希望开发人员如何组织他们的样式。

例如,我希望所有屏幕都具有相同的背景颜色。我怎么做?我需要为每个 Activity 布局 xml 指定什么吗?还是别处?如何实现?

【问题讨论】:

  • 您创建 styles 并将它们应用于您的 UI 元素
  • @zapl 就是我在做什么。我想知道的是如何将样式应用于整个屏幕。喜欢每个屏幕的背景颜色?
  • 您可以将一些背景主题应用到每个最顶层的 LinearLayout(或您使用的任何东西),也可以通过 theme for your activity
  • @zapl 哦,是的,这有帮助!谢谢!

标签: android android-layout


【解决方案1】:

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

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

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

在引用该颜色的 res/values 中创建一个主题.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" />

【讨论】:

  • 在themes.xml 中实现此代码时出现错误,因为它无法识别此处的十六进制颜色代码:​​#FF0000
  • 只需将颜色十六进制放入@color资源中,然后引用它​​@color/my_background
  • 这不是正确的答案。请更正您的答案以匹配 Chris 的评论 NPike
  • 改为编辑styles.xml中的样式。
  • windowBackground 无效。我认为此标志仅用于设置/更改可绘制对象而不是颜色!
【解决方案2】:

您也可以在AndroidManifest.xml中设置应用级别的背景

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 如何在android 2.1预览版中打开Theme Editir
    • 打开 styles.xml 文件,您会看到在右上角的编辑器文本中打开,点击它。
    • 但是我的case隐藏了,重启android studio时问题解决了谢谢show mach
    • 要打开它,请转到工具 -> Android -> 主题编辑器。
    • 编辑器不受支持。从 Android Studio 3.3 开始,它已被删除。
    猜你喜欢
    • 2011-11-09
    • 2017-10-04
    • 2019-11-15
    • 2013-08-04
    • 2019-04-12
    • 1970-01-01
    • 2010-12-11
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多