7

我注意到通过程序更改 android 小部件(例如 Button 或 TextView)的背景颜色:

myButton.setBackgroundColor(Color.BLUE);

使它失去其 3D 形状、边框和阴影效果,然后看起来像一个丑陋的平面正方形。我错过了什么?

很抱歉这个非常幼稚的问题,但尽管尝试了一段时间,但我还是没能把它弄好。

4

3 回答 3

2

圆角、阴影效果等通常在 Android 中通过使用图像来完成。有关其工作原理的说明,请参阅此开发人员文档。

小部件可以具有图像背景或纯色背景。因此,通过设置背景颜色,您将覆盖背景图像。如果要更改颜色而不丢失其他所有内容,则需要编辑图像文件。

于 2010-05-23T18:34:57.720 回答
0

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

myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
于 2017-01-27T13:05:23.227 回答