我注意到通过程序更改 android 小部件(例如 Button 或 TextView)的背景颜色:
myButton.setBackgroundColor(Color.BLUE);
使它失去其 3D 形状、边框和阴影效果,然后看起来像一个丑陋的平面正方形。我错过了什么?
很抱歉这个非常幼稚的问题,但尽管尝试了一段时间,但我还是没能把它弄好。
我注意到通过程序更改 android 小部件(例如 Button 或 TextView)的背景颜色:
myButton.setBackgroundColor(Color.BLUE);
使它失去其 3D 形状、边框和阴影效果,然后看起来像一个丑陋的平面正方形。我错过了什么?
很抱歉这个非常幼稚的问题,但尽管尝试了一段时间,但我还是没能把它弄好。
圆角、阴影效果等通常在 Android 中通过使用图像来完成。有关其工作原理的说明,请参阅此开发人员文档。
小部件可以具有图像背景或纯色背景。因此,通过设置背景颜色,您将覆盖背景图像。如果要更改颜色而不丢失其他所有内容,则需要编辑图像文件。
由于背景是可绘制的,因此您可以修改可绘制以更改颜色:
myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);