我试着从Android UI设计的幻灯片中克隆一个活动的设计。然而,我有一个非常简单的任务的问题。

我已经创建了如图所示的布局,头部是一个RelativeLayout中的TextView。现在我想改变相对布局的背景颜色,但我似乎不知道该怎么做。

我知道我可以在XML文件中的RelativeLayout标签中设置android:background属性,但我该将其设置为什么呢?我想定义一个新的颜色,我可以在多个地方使用。它是可绘制的还是字符串?

此外,我希望有一个非常简单的方法来从Eclipse Android UI设计器,我必须错过?

我现在有点沮丧,因为这应该是一个最多只需点击几下就能执行的活动。所以任何帮助都是非常感激的。:)


当前回答

如果你想快速改变颜色(并且你没有记住十六进制数字),android有一些预设的颜色,你可以这样访问:

android:background="@android:color/black"

有15种颜色供你选择,非常适合快速测试,而且你不需要设置额外的文件。

设置values/colors.xml文件并像上面解释的那样直接使用十六进制仍然可以工作。

其他回答

上面的答案很不错。如果你愿意,你也可以像这样编程

首先,你的布局应该有一个ID。在res/layout/*.xml中添加+id行

<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>

然后,在Java代码中进行以下更改。

RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);

除此之外,如果你在colors.xml中定义了颜色,那么你也可以通过编程来做:

rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));

你可以使用简单的颜色资源,通常在res/values/colors.xml中指定。

<color name="red">#ffff0000</color>

并通过android:background="@color/red"使用这个。这种颜色也可以用于其他任何地方,例如作为文本颜色。以同样的方式在XML中引用它,或者通过getResources(). getcolor (R.color.red)在代码中获取它。

你也可以使用任何可绘制的资源作为背景,使用android:background="@drawable/mydrawable"(这意味着9patch drawables,正常位图,形状drawables, ..)。

The

res/values/colors.xml.

<color name="red">#ffff0000</color>
android:background="@color/red"

例子对我没用,但是

android:background="#(hexidecimal here without these parenthesis)"

为我工作在相对布局元素作为一个属性。

您可以使用android:background="#DC143C",或任何其他RGB值为您的颜色。我用这种方式使用它没有问题,正如这里所述

如果你想快速改变颜色(并且你没有记住十六进制数字),android有一些预设的颜色,你可以这样访问:

android:background="@android:color/black"

有15种颜色供你选择,非常适合快速测试,而且你不需要设置额外的文件。

设置values/colors.xml文件并像上面解释的那样直接使用十六进制仍然可以工作。