Android imagebutton以编程方式更改?
Posted
技术标签:
【中文标题】Android imagebutton以编程方式更改?【英文标题】:Android imagebutton change programmatically? 【发布时间】:2011-10-08 18:36:10 【问题描述】: Hello我有一个图像linearButton
XML中的背景可绘制的套件。我想在代码中有条件地替换背景,但它永远不会发生!
Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
这似乎无效,是否有一个图像按钮的“重新加载”功能,我必须在它们视觉改变之前调用它?
【问题讨论】:
你所做的应该有效。向我们展示更多代码,以便我们为您提供帮助。 嘿,谢谢它的工作,我的意思是删除这个问题,但添加的答案也很有帮助! 【参考方案1】:invalidate()
方法将强制重绘任何视图:
Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
linearButton.invalidate();
参考here。
【讨论】:
是的,您想使视图无效以强制 android 重绘它【参考方案2】:应该更新“正确”的答案。
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
【讨论】:
【参考方案3】:试试这个
linearButton.setImageResource(R.drawable.replacementGraphic);
我希望它应该工作
【讨论】:
以上是关于Android imagebutton以编程方式更改?的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中的 ImageButton 中适合图像
如何以编程方式将背景颜色从 android.support.design 更改为 MaterialButton