Does changing background color in android destroy the widget's appearance?
Asked Answered
M

3

7

I've noticed that changing the background color of an android widget (ex. Button or TextView) by program:

myButton.setBackgroundColor(Color.BLUE);

makes it to loose its 3D shape, border, and shadows effects, and then appears like a ugly flat square. What am I missing?

Sorry for the very naive question but I couldn't get it right although tried for a time.

Mesne answered 23/5, 2010 at 18:30 Comment(0)
E
2

Rounded corners, shadow effects, etc are often accomplished in Android by using images. See this developer documentation for an explanation of how that works.

A widget can have either an image background, or a solid color background. So, by setting the background color you are override the background image. If you want to change the color without losing everything else, you need to edit the image files.

Enthrall answered 23/5, 2010 at 18:34 Comment(0)
E
0

Since background is a drawable, you can modify the drawable to change the color:

myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
Epirus answered 27/1, 2017 at 13:5 Comment(1)
You might also need to invalidate() in order to force it to redraw.Epirus

© 2022 - 2024 — McMap. All rights reserved.