使用Glide的具有多个加载图像的App Widget RemoteViews

时间:2018-09-25 12:14:57

标签: android android-widget android-glide remoteview

我正在开发一个带有ListView的小部件,该小部件将显示我的应用程序的5条最新帖子。每个帖子都将包含一些文本,我也希望为每个帖子也包含一个独特的图像(相册艺术)。我发现,RemoteViews的图像加载不是那么简单。

我一直沿用this tutorial来使用Glide进行图像加载,但是对于我的特定情况似乎不起作用。本教程将更新onUpdate()的{​​{1}}中的图像。对我来说,如果您要加载单个图像,那似乎还可以。但是,我有多个图像需要加载,AppWidgetProvider中的每个列表项一个。另外,我没有引用要在ListView中加载的图像。在onUpdate()中的getViewAt()之前,我不会引用该图像。

到目前为止,我已经尝试在RemoteViewsService内执行以下操作:

getViewAt()

但是,一旦我将小部件放到主屏幕上,我就会收到ANR,因为RemoteViewsService返回@Override public RemoteViews getViewAt(int position) { final RemoteViews remoteViews = new RemoteViews(mContext.getPackageName(), R.layout.list_item_app_widget); final Post currentPost = mPosts.get(position); remoteViews.setTextViewText(R.id.list_item_app_widget_title, currentPost.getTitle()); remoteViews.setTextViewText(R.id.list_item_app_widget_artist, currentPost.getArtists()); AppWidgetTarget target = new AppWidgetTarget(mContext, R.id.list_item_app_widget_artwork, remoteViews, mAppWidgetID){ @Override public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) { super.onResourceReady(resource, transition); } }; GlideApp .with(mContext.getApplicationContext()) .asBitmap() .load(currentPost.getPhotoUrl()) .into(target); return remoteViews; } 的{​​{1}}引发了异常,尽管我并不完全理解为什么发生。

我尝试使用毕加索(Picasso)执行相同的任务,实际上这是我经常使用的图像库,但是(简而言之)我也无法使其工作。

有人尝试为RemoteViews加载多张图片吗?任何帮助,将不胜感激。

0 个答案:

没有答案