如何在XML布局中设置背景颜色?

30

我找不到任何关于如何实现这一点的信息?我想在活动的xml布局中定义背景颜色。我该怎么做?

2个回答

58

将你的外部布局(例如LinearLayout)的背景属性设置为一种颜色。

<LinearLayout android:background="@color/mycolor"
              .... />

这些颜色可以在res/values/colors.xml文件中定义(查看此处如何操作)。你也可以直接在属性中定义颜色(android:background="#ffff0000"),但通常不推荐这样做。通过在XML文件中定义颜色,你可以给它一个描述性的名称(提高代码可读性)并且可以在其他地方重复使用。

编辑:
我在链接的文档中提供了一个示例,但以下是一个简短的示例:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#ffff0000</color>
    <color name="green">#ff00ff00</color>
</resources>

这基本上是一个包含多个color标签的resources标签。每个颜色都有一个name属性(用于引用该颜色)和实际的颜色,在颜色标签中以十六进制表示。有关可能的格式,请参见文档。这个例子中使用的是#AARRGGBB,其中A=alpha(透明度)R=redG=greenB=blue。此示例文件包含完全红色和完全绿色。它们可以通过@color/red@color/green引用。


你能向我展示如何设置colors.xml文件吗?我创建了一个新的xml文件,但是如何设置颜色值呢? - gsfd
编辑了一个简短的说明。 :) - user658042

3

需要说明的一点是,如果将"android:background="#ffffffff""这个设置应用到一个包含指令中,它将无效。

例如,

<include
    android:id="@+id/fragment_printer_detail_property_group"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="@dimen/printer_detail_group_vertical_margin"
    android:layout_marginLeft="@dimen/printer_detail_group_horizontal_margin"
    android:layout_marginRight="@dimen/printer_detail_group_horizontal_margin"
    android:layout_marginTop="@dimen/printer_detail_group_vertical_margin"
    layout="@layout/module_printer_detail_property"
    android:background="@color/module_printer_detail_group_background_color" />

"android:background"应该在模块module_printer_detail_property的布局文件中设置。"

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