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

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.


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.


See:

  • How to set background color of a View
  • Is it possible to have a Button with a background image with text on top?
  • How to gradient fill a button's background?
  • Problem with EditText background (android)

  • 由于背景是可绘制的,因此您可以修改绘图以更改颜色:

    myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
    
    链接地址: http://www.djcxy.com/p/45912.html

    上一篇: 内部物品移动时如何更新

    下一篇: 在android中更改背景颜色是否会破坏小部件的外观?