如果我在xml中设置颜色如下:
<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);
颜色不同。这些方法是否相同?
答案 0 :(得分:1)
试
m_border.setBackgroundColor(getResources().getColor(R.color.default_border_color));
setBackgroundColor()
需要一个颜色整数,因此您必须通过调用getResources().getColor()
方法进行转换。
见
http://developer.android.com/reference/android/content/res/Resources.html#getColor(int)
答案 1 :(得分:0)
不,他们不一样。
对于background,以下内容是等效的:
android:background="@color/default_border_color"
public void setBackgroundResource(int resid)
因此,您可以在drawable
或java代码中设置背景资源(color
,xml
..等。)。
至于backgroundcolor,似乎没有xml属性(例如android:backgroundcolor
),而是公共方法:
public void setBackgroundColor (int color)