2012-02-29 66 views
0

如果我喜欢设置这样的XML的颜色:是背景和setBackgroundColor相同

<LinearLayout 
    android:id="@+id/borderForList" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/default_border_color" > 

我让我的颜色。如果我在代码中做:

m_border.setBackgroundColor(R.color.default_border_color); 

颜色是不同的。这些方法是相同的吗?

回答

1

尝试

m_border.setBackgroundColor(getResources().getColor(R.color.default_border_color)); 

R.color.default_border_color是资源整数在由android自动生成的R文件中,setBackgroundColor()需要一个彩色整数,因此您必须通过调用getResources().getColor()方法将其转换。

看到

http://developer.android.com/reference/android/content/res/Resources.html#getColor(int

+0

这工作。为什么你必须做getResources()? – skinnybrit51 2012-03-01 00:49:15

0

不,他们是不一样的。在无论是在xml或在Java代码中

android:background="@color/default_border_color" 

public void setBackgroundResource(int resid) 

所以,你可以设置背景资源

对于background以下是等价的(drawablecolor ..等)。

至于backgroundcolor,似乎没有XML属性(如android:backgroundcolor),而是一个公共方法:

public void setBackgroundColor (int color) 
相关问题