繁体   English   中英

在运行时更改小部件背景

[英]Changing widget background at runtime

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

谢谢

使用类似:

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);

这些更改之后,请不要忘记更新窗口小部件。

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

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

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

上面的示例是我用来将小部件更改为另一个可绘制形状的内容。 但是,您需要传递一个“ id”,而不只是布局参考。

请注意,这不适用于2.1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM