使用Glide for AppWidget加载图像

use*_*944 5 android android-appwidget android-appwidget-list

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

rot*_*oup 2

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

在 中更新小部件时onUpdate(),您创建一个新的 AppWidgetTarget,向其传递RemoteViews对象、图像视图的 id 和 appwidgetId,然后以与应用程序中的图像视图几乎相同的方式调用 glide。

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

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

上面的示例代码取自这套精彩的滑翔教程。这些教程涵盖了使用 glide 的许多实际方面。

类似地,glide 也提供了一个NotificationTarget目标类——它解决了同样的问题,但针对的是通知而不是appWidgets。