【问题标题】:How to remove the background of a (regular) view (Android)如何删除(常规)视图的背景(Android)
【发布时间】:2011-08-16 14:28:21
【问题描述】:

我有以下代码:

View view = new View(this);  
view.setBackgroundDrawable(...);  
...  

我想在这里删除那个背景。
只需将其转回原样。

我尝试了这些但失败了:

view.setBackgroundDrawable(null);  
view.setBackgroundColor(0xFF000000);  
view.setBackgroundColor(0x00000000);  

还有什么想法吗?

【问题讨论】:

  • 调用invalidate() 来强制重绘会有影响吗?

标签: java android view background


【解决方案1】:

view.setBackgroundDrawable(null); 应该可以工作。

您可以尝试以下方法之一:

v.setBackgroundColor(Color.WHITE);
//or
v.setBackgroundColor(Color.parseColor("#ff0000")); //whatever color

确保您应用背景的视图是正确的实例。

【讨论】:

  • 非常小的更新:setBackgroundDrawable(Drawable d) 现在已弃用。请改用setBackground(Drawable d)
  • 如果应用程序/父视图不是白色的,那么当使用白色时我们正在更改 UI
【解决方案2】:

这是因为view.setBackgroundColor(int) 需要颜色资源而不是“实际”整数值。尝试在您的 colors.xml 中声明它,请参阅this。但是,我不太确定“删除”背景是什么意思。如果您希望它具有原始值,那么我建议您将原始可绘制对象(使用getBackground())存储在某处。否则你很可能会丢失格式,因为 Android 中的大多数默认背景都是可绘制资源(选择器),而不是简单的颜色。

【讨论】:

  • view.setBackgroundColor(int) 采用 ARGB 颜色,而不是资源。
猜你喜欢
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
相关资源
最近更新 更多