在运行时更改小部件背景

时间:2010-11-29 14:25:47

标签: android background widget

我正在开发一个简单的小部件,我想在运行时从png文件(或类似文件)更改背景。这可能吗?如果可以,怎么做?有人可以提供一些简单的例子吗?

由于

3 个答案:

答案 0 :(得分:4)

使用类似:

views.setImageViewBitmap(R.id.widgetBackground, ((BitmapDrawable)context.getResources().getDrawable(R.drawable.YOUR_BACKGROUND)).getBitmap());

文件YOUR_BACKGROUND是一个png。

views对象是RemoteViews的实例。 您可以使用以下命令获取实例:

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);

不要忘记在更改后更新Widget。

AppWidgetManager mgr = AppWidgetManager.getInstance(context);
ComponentName me = new ComponentName(context, Widget.class);
mgr.updateAppWidget(me, views);

答案 1 :(得分:1)

您可以使用RemoteViews中的setInt或其他方法设置背景图像或任何其他值。

remoteViews.setInt(R.id.widget_layout,       “setBackgroundResource”,R.drawable.myshape_red);

以上示例是我用来将窗口小部件更改为另一个可绘制形状的示例。您需要传入“id”而不仅仅是布局参考。

请注意,这不适用于2.1。

答案 2 :(得分:0)