[英]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.