大佬教程收集整理的这篇文章主要介绍了android – 应用程序小部件setImageViewUri不会更新图像,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是,随着图像随时间的变化,窗口小部件的图像不会改变.我使用root资源管理器检查保存的png,并正确更新.但不显示正确的图像.每个小部件显示从添加到主屏幕的时间的图像.如果我使用setImageViewBitmap(…)它可以正常工作,除了罕见的失败的binder事务.
我使用下面的方法从服务更新窗口小部件.它不适用于Android 2.3.7,并且运行于2.2的模拟器.可能是什么问题呢?它是否以某种方式缓存?
public void updateWidget(Context context) { // redraws the widget's image updateIcon(); OutputStream stream; try { stream = context.openFiLeoutput("icon.png",Context.MODE_WORLD_READABLE); } catch (FileNotFoundException eX) { ex.printStackTrace(); return; } m_Icon.compress(CompressFormat.PNG,100,stream); try { stream.close(); } catch (IOException eX) { ex.printStackTrace(); } AppWidgetManager appWidgetManager = AppWidgetManager.geTinstance(context); int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context,WidgetProvider.class)); Intent intent = new Intent(context,MyDialog.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent clickIntent = PendingIntent.getActivity(context,intent,0); File file = new File(context.getFilesDir().getAbsolutePath() + File.separator + "icon.png"); // Uri uri = Uri.fromFile(filE); // update all widgets on home screen for (int wid : appWidgetIds) { RemoteViews widget = new RemoteViews(context.getPackagename(),R.layout.widget); widget.setOnClickPendingIntent(R.id.widget_layout,clickIntent); // === EDIT === // Uri.fromFile(filE); does not work correctly on android 2.1,only 2.2 and up // widget's image will disappear // widget.setImageViewUri(R.id.widget_icon,uri); widget.setImageViewUri(R.id.widget_icon,Uri.parse(file.getPath())); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,wid); appWidgetManager.updateAppWidget(wid,widget); } }
编辑:
我也尝试过一个自定义的ContentProvider并设置“content:// …”uri,但结果相同.该小部件显示从添加到主屏幕时的图像,并且不会随时间更新.
以上是大佬教程为你收集整理的android – 应用程序小部件setImageViewUri不会更新图像全部内容,希望文章能够帮你解决android – 应用程序小部件setImageViewUri不会更新图像所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。