2013-08-26 65 views
2

我需要以编程方式更改按钮background。该按钮放置在一个小部件中。更改窗口小部件中按钮的背景:Android

我得到了一个改变背景颜色here的例子,但这只是为了改变颜色,我想使用图像而不是颜色。

有没有什么办法以编程方式将背景图像应用于按钮?

谢谢

回答

3

而不是使用setBackgroundColor像例子中,你链接,你应该能够使用setBackgroundResource我想到的。

+1

是的,它的工作。 –

+0

我已经试图接受它。但只有4分钟后我才能接受。 –

+0

@SanjayJoshi请花时间:) –

-1

我认为你需要使用public void setBackgroundResource (int resid)

0

您可以使用此:

setInt(YouButtonId, "setBackgroundResource", YourImageResourceID); 
0

使用setBackgroundResource,而不是setBackgroundColor

2

在你的AppWidgetProvider类:

private RemoteViews v; 
... in onUpdate: 
v = new RemoteViews(context.getPackageName(), R.layout.widget); 
... 
icon = context.getResources().getIdentifier("ic_action_refresh_"+choosenTheme, "drawable", context.getPackageName()); 
v.setInt(R.id.wi_bu_refresh, "setBackgroundResource", icon); 

其中:

图标只是资源ID(由则getIdentifier方法动态发现每一个主题)。

R.layout.widget是小部件xml布局。

R.id.wi_bu_refresh是窗口小部件布局中的一个按钮,您想要更改哪个背景。

希望它有帮助,欢呼声。