Установите цвет фона программно

Я пытаюсь установить цвет фона программно, но когда я устанавливаю каждый из моих цветов, фон черный, но с любым цветным фоном, белым, как тема приложения.

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);

Вы видите код?

Ответ 1

Я не понял ваш вопрос... что вы подразумеваете под "когда я устанавливаю каждый мой цвет"? попробуйте это (изменить: "#fffff" в исходном ответе, измененном на "#ffffff"

  yourView.setBackgroundColor(Color.parseColor("#ffffff"));

Ответ 2

вам нужно использовать метод getResources(), попробуйте использовать следующий код

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white)); 

Edit::

getResources.getColor() устарел так, используйте, как показано ниже

 root.setBackgroundColor(ContextCompat.getColor(this, R.color.white)); 

Ответ 3

Вы можете использовать

 root.setBackgroundColor(0xFFFFFFFF);

или

 root.setBackgroundColor(Color.parseColor("#ffffff"));

Ответ 4

Предыдущие ответы теперь устарели, вам нужно использовать ContextCompat.getColor для правильного получения цвета:

root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));

Ответ 5

Если вы просто хотите использовать некоторые из предопределенных цветов Android, вы можете использовать Color.COLOR (где COLOR есть BLACK, WHITE, RED и т.д.):

myView.setBackgroundColor(Color.GREEN);

В противном случае вы можете сделать так, как предложили другие,

myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));

Я не рекомендую использовать гексагонный цвет напрямую. Вы должны сохранить все свои пользовательские цвета в colors.xml.

Ответ 6

Если вы сохраняете цветовой код в colors.xml, который находится под папкой значений, вы должны вызвать следующее:

root.setBackgroundColor(getResources().getColor(R.color.name));

name означает, что вы объявляете в теге <color/>.

Ответ 7

это должно работать: вы должны использовать getResources(). getColor (R.color.WHITE), чтобы получить ресурс цвета, который вы должны добавить в файле ресурсов colors.xml

View someView = findViewById(R.id.screen);

someView.setBackgroundColor(getResources().getColor(R.color.WHITE));

Ответ 8

В моем случае это не меняло цвет, потому что я был настройкой цвета в моем ресурсе xml.

После удаления строки, которая устанавливает цвет, он отлично работал программно

Это пример, который я сделал в RecyclerView

final Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_icon).mutate();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    holder.image.setBackground(drawable);
} else {
    holder.image.setBackgroundDrawable(drawable);
}