Set Background color programmatically
AndroidBackground ColorAndroid Problem Overview
I try to set background color programmatically but when I set every one of my colors, the background being black but with any color background being white like the application theme.
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);
Can you see the code?
Android Solutions
Solution 1 - Android
I didn't understand your question ... what do you mean by "when i set every one of my colour"? try this (edit: "#fffff" in original answer changed to "#ffffff"
yourView.setBackgroundColor(Color.parseColor("#ffffff"));
Solution 2 - Android
you need to use getResources() method, try to use following code
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white));
Edit::
getResources.getColor() is deprecated so, use like below
root.setBackgroundColor(ContextCompat.getColor(this, R.color.white));
Solution 3 - Android
You can use
root.setBackgroundColor(0xFFFFFFFF);
or
root.setBackgroundColor(Color.parseColor("#ffffff"));
Solution 4 - Android
The previous answers are now deprecated, you need to use ContextCompat.getColor
to retrieve the color properly:
root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
Solution 5 - Android
If you just want to use some of the predefined Android colors, you can use Color.COLOR
(where COLOR
is BLACK
, WHITE
, RED
, etc.):
myView.setBackgroundColor(Color.GREEN);
Otherwise you can do as others have suggested with
myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));
I don't recommend using a hex color directly. You should keep all of your custom colors in colors.xml.
Solution 6 - Android
This must work:
you must use getResources().getColor(R.color.WHITE) to get the color resource, which you must add in the colors.xml resource file
View someView = findViewById(R.id.screen);
someView.setBackgroundColor(getResources().getColor(R.color.WHITE));
Solution 7 - Android
If you save color code in the colors.xml which is under the values folder,then you should call the following:
root.setBackgroundColor(getResources().getColor(R.color.name));
name
means you declare in the <color/>
tag.
Solution 8 - Android
In my case it wasn't changing the color because I was setting the color in my xml resource.
After delete the line that set the color it worked perfectly programmatically
This is an example I did in a 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);
}