How to set background color of a View


Question

I'm trying to set the background color of a View (in this case a Button).

I use this code:

// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

It causes the Button to disappear from the screen. What am I doing wrong, and what is the correct way to change the background color on any View?

Thanks.

1
168
5/28/2010 7:37:54 PM

Accepted Answer

You made your button transparent. The first byte is the alpha.

Try v.setBackgroundColor(0xFF00FF00);

274
11/15/2014 12:57:52 AM

When you call setBackgoundColor it overwrites/removes any existing background resource, including any borders, corners, padding, etc. What you want to do is change the color of the existing background resource...

View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);

Experiment with PorterDuff.Mode.* for different effects.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon