【问题标题】:Does changing background color in android destroy the widget's appearance?在android中更改背景颜色会破坏小部件的外观吗?
【发布时间】:2011-02-22 23:44:24
【问题描述】:

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

myButton.setBackgroundColor(Color.BLUE);

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

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

【问题讨论】:

    标签: android widget background-color


    【解决方案1】:

    圆角、阴影效果等通常在 Android 中通过使用图像来完成。请参阅此developer documentation,了解其工作原理。

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

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      由于背景是drawable,你可以修改drawable来改变颜色:

      myButton.getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
      

      【讨论】:

      • 您可能还需要 invalidate() 以强制它重绘。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2011-10-30
      • 2010-10-27
      • 2012-11-15
      • 2020-11-11
      • 2020-05-04
      相关资源
      最近更新 更多