Android imagebutton以编程方式更改?

时间:2011-07-19 18:05:04

标签: android xml drawable imagebutton

您好我有一个图像按钮linearButton,它在XML中有一个背景可绘制集。我想有条件地替换代码中的背景,但它永远不会发生!

Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);

这似乎是无效的,是否有一个“重新加载”功能,我必须在视觉上改变之前调用图像按钮?

3 个答案:

答案 0 :(得分:7)

invalidate()方法将强制重绘任何视图:

Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic);
linearButton.setBackgroundDrawable(replacer);
linearButton.invalidate();

请参阅here以供参考。

答案 1 :(得分:4)

"正确"答案应该更新。

API 16中已弃用

setBackgroundDrawable()

API 16中添加了

setBackground()

更好的答案可能是:

int replace = R.drawable.my_image;
myButton.setBackgroundResource(replace);
myButton.invalidate();

或只是:

myButton.setBackgroundResource(R.drawable.my_image);
myButton.invalidate();

将从API级别1-18开始

答案 2 :(得分:0)

试试这个

linearButton.setImageResource(R.drawable.replacementGraphic);

我希望它能够发挥作用