我正在开发一个带有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
加载多张图片吗?任何帮助,将不胜感激。