使用Glide为AppWidget加载图像

时间:2016-11-09 12:17:50

标签: android android-appwidget android-appwidget-list

我正在处理我的第一个应用小部件。 除了一件事外,一切都很好。我无法找到,如何使用Glide在RemoteViewsFactroy的getViewAt()方法中将图像加载到ImageView中。我总是得到错误,因为我在MainThread上遇到了(AppWidgetTarget),但是我无法从RemoteViewsFactory调用新的Handler(Looper.getMainLooper())。

1 个答案:

答案 0 :(得分:1)

Glide通过提供AppWidgetTarget类来支持这一点。

onUpdate()中更新窗口小部件时,您创建一个新的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。这些教程涵盖了使用滑行的许多实际方面。

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