你好,我有一个名为linearButton
的imagebutton
,在XML中设置了背景样式。我想要在代码中有条件地替换背景,但是它从未生效!
Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
这似乎不太有效,我需要在图像按钮在视觉上改变之前调用“重新加载”函数吗?
你好,我有一个名为linearButton
的imagebutton
,在XML中设置了背景样式。我想要在代码中有条件地替换背景,但是它从未生效!
Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
invalidate()
方法将强制重绘任何视图:Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
linearButton.invalidate();
请参阅此处的参考资料。
需要更新“正确”的答案。
setBackgroundDrawable()
在API 16中已被弃用。
setBackground()
在API 16中添加。
一个更好的答案可能是:
int replace = R.drawable.my_image;
myButton.setBackgroundResource(replace);
myButton.invalidate();
myButton.setBackgroundResource(R.drawable.my_image);
myButton.invalidate();
将适用于API级别1-18
linearButton.setImageResource(R.drawable.replacementGraphic);