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?
You made your button transparent. The first byte is the alpha.
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.