2

我需要以background编程方式更改按钮。该按钮被放置在一个小部件中。

我在这里有一个更改背景颜色的示例,但这仅用于更改颜色,我想使用图像而不是颜色。

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

谢谢

4

5 回答 5

4

而不是在您链接的示例中使用setBackgroundColorlike,您应该能够使用setBackgroundResource我认为。

于 2013-08-26T07:27:04.813 回答
3

在您的 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 是小部件布局中的一个按钮,您要更改哪个背景。

希望有帮助,加油。

于 2015-01-29T15:04:05.917 回答
0

你可以使用这个:

setInt(YouButtonId, "setBackgroundResource", YourImageResourceID); 
于 2013-08-26T07:27:53.527 回答
0

使用setBackgroundResource而不是setBackgroundColor.

于 2013-08-26T07:28:44.077 回答
-1

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

于 2013-08-26T07:27:16.007 回答