使用Glide为AppWidget加载图像

问题描述:

我正在处理我的第一个应用部件。除了一件事外,Everthing很好。我找不到,我怎么能在RemoteViewsFactroy的getViewAt()方法中使用Glide将图像加载到ImageView中。我总是得到错误,因为我必须在MainThread中运行(AppWidgetTarget),但我无法从RemoteViewsFactory调用新的Handler(Looper.getMainLooper())。使用Glide为AppWidget加载图像

+0

你可以使用通用图像加载器来实现这一点。你想只使用滑动来加载图片吗? – Sangeetha

Glide通过提供AppWidgetTarget类来支持此功能。

虽然onUpdate()更新你的widget,创建一个新的AppWidgetTarget,它传递RemoteViews对象,你的图像视图的ID和appwidgetId,然后,你会在几乎相同的方式调用滑翔在一个ImageView的你应用程序。

appWidgetTarget = new AppWidgetTarget(context, rv, R.id.custom_view_image, appWidgetIds); 

    Glide 
      .with(context.getApplicationContext()) // safer! 
      .load(GlideExampleActivity.eatFoodyImages[3]) 
      .asBitmap() 
      .into(appWidgetTarget); 

以上示例代码取自wonderful set of glide tutorials。这些教程涵盖了使用滑翔的许多实际方面。

类似地,NotificationTarget目标类也由滑行提供 - 它解决了同样的问题,但对于通知,而不是appWidgets。