使用Glide为AppWidget载入图片

6

我正在开发我的第一个应用程序小部件。 除了一件事情外,一切都很好。我无法弄清楚如何在RemoteViewsFactroy的getViewAt()方法中使用Glide将图像加载到ImageView中。我总是会遇到错误,因为我必须在主线程中运行into(AppWidgetTarget),但我无法从RemoteViewsFactory调用new Handler(Looper.getMainLooper())。


你可以使用通用图像加载器来实现这个功能。你想要只使用Glide来加载图片吗? - Sangeetha
1个回答

2
Glide 通过提供 AppWidgetTarget 类来支持此功能。
在更新小部件时,在 onUpdate() 中创建一个新的 AppWidgetTarget,将其传递给 RemoteViews 对象、图像视图的 ID 和 appwidgetId,然后以与应用程序中 ImageView 相同的方式调用 Glide。
    appWidgetTarget = new AppWidgetTarget( context, rv, R.id.custom_view_image, appWidgetIds );

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

上面的示例代码摘自这个精彩的Glide教程集。这些教程涵盖了使用Glide的许多实用方面。
同样,Glide还提供了一个NotificationTarget目标类,它解决了通知而不是应用小部件的同样问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接