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