9

我试图FrameLayout用我自己的颜色设置我的背景颜色。

我创建了一个.xml包含我自己颜色的文件。这里是:

<?xml version="1.0" encoding="utf-8"?> 
<resources>
    <color name="red">#FF0000</color>
    <color name="orange">#FF7D00</color>
    <color name="yellow">#FFFF00</color>
    <color name="green">#00FF00</color>
    <color name="blue">#00B4FF</color>
    <color name="black">#000000</color>
</resources>

这是我试图设置背景颜色的代码,但是当我运行应用程序时,FrameLayout它总是灰色的,为什么?:

FrameLayout MyFrameLayout = new FrameLayout(this);
LayoutParams MyFrameLayoutParam = new LayoutParams(LayoutParams.FILL_PARENT, 200);
MyFrameLayout.setLayoutParams(MyFrameLayoutParam);

MyFrameLayout.setBackgroundColor(R.color.red);

Parent.addView(MyFrameLayout);
4

4 回答 4

11

您需要在设置颜色之前从资源中检索颜色。您分配的是 R.java id 而不是实际值。

Color red = getApplicationContext().getResources().getColor(R.color.red)
MyFrameLayout.setBackgroundColor(red);
于 2012-09-07T21:59:51.313 回答
3

这使按钮背景变为绿色,找到所需的颜色十六进制。

yourButton.setBackgroundColor(Color.parseColor("#25b72f"));

于 2014-12-11T10:10:25.587 回答
3

要在 xml 中使用您的自定义颜色,您可以使用以下内容:

android:color="@color/orange"

于 2014-11-08T15:56:08.997 回答
1

您可以使用 setBackgroundResource(Color)

这里有一个例子:

relativelayout.setBackgroundResource(R.color.green);

于 2013-11-20T15:12:43.520 回答