我有以下代码:
View view = new View(this);
view.setBackgroundDrawable(...);
...
我想要去掉这个背景。
将它恢复到原来的状态。
我尝试了以下方法但都失败了:
view.setBackgroundDrawable(null);
view.setBackgroundColor(0xFF000000);
view.setBackgroundColor(0x00000000);
还有其他的想法吗?
我有以下代码:
View view = new View(this);
view.setBackgroundDrawable(...);
...
我想要去掉这个背景。
将它恢复到原来的状态。
我尝试了以下方法但都失败了:
view.setBackgroundDrawable(null);
view.setBackgroundColor(0xFF000000);
view.setBackgroundColor(0x00000000);
还有其他的想法吗?
view.setBackgroundDrawable(null);
应该有效。
你可以尝试以下方法之一:
v.setBackgroundColor(Color.WHITE);
//or
v.setBackgroundColor(Color.parseColor("#ff0000")); //whatever color
确保将背景应用于的视图是正确的实例。
setBackgroundDrawable(Drawable d)
现在已经被弃用。请改用setBackground(Drawable d)
。 - Louis Tsaiview.setBackgroundColor(int)
期望的是颜色资源而不是“实际”的整数值。尝试在您的colors.xml中声明它,参见this。然而,我不太确定您所说的“删除”背景是什么意思。如果您想要它具有原始值,则建议您将原始可绘制对象(使用getBackground()
)存储在某个地方。否则,由于Android中大多数默认背景都是Drawable资源(选择器),而不是简单的颜色,因此您很可能会失去格式。view.setBackgroundColor(int)
接受 ARGB 颜色,而不是资源。 - Lawrence Kesteloot
invalidate()
强制重新绘制有什么不同吗? - Ben Williams