являются background и setBackgroundColor одинаковыми - PullRequest
0 голосов
/ 01 марта 2012

Если я установлю цвет в 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);

Цвет будет другим.Эти методы одинаковы?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

try

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

R.color.default_border_color - целое число ресурса в R-файле, которое автоматически генерируется Android, setBackgroundColor() ожидает целое число цвета, поэтому вы должны преобразовать его, вызвав getResources().getColor()Метод.

см.

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

0 голосов
/ 01 марта 2012

Нет, они не совпадают.

Для фона следующие значения эквивалентны:

android:background="@color/default_border_color" 

public void setBackgroundResource(int resid)

Таким образом, вы можете установить фон resource (drawable, color ..etc.) Либо в xml, либо в коде Java.

Что касается backgroundcolor , то, похоже, xml отсутствуетатрибут (например, android:backgroundcolor), но открытый метод:

public void setBackgroundColor (int color)
...