Я занимаюсь разработкой виджета с ListView
, который будет отображать 5 самых последних сообщений моего приложения.Каждый пост будет содержать некоторый текст, и я надеялся также добавить уникальное изображение для каждого поста (обложка альбома).Я обнаружил, что загрузка изображения для RemoteViews
не так проста.
Я следовал этому уроку , чтобы использовать Glide для загрузки изображений, но, похоже, он не работает для моего конкретного случая.Учебник обновляет изображение в пределах onUpdate()
от AppWidgetProvider
.Для меня это нормально, если у вас есть одно изображение для загрузки.Тем не менее, у меня есть несколько изображений, которые необходимо загрузить, по одному для каждого элемента списка в моем ListView
.Кроме того, у меня нет ссылки на изображение, которое я хотел бы загрузить в onUpdate()
.У меня не будет ссылки на изображение до getViewAt()
в моем RemoteViewsService
.
До сих пор я пытался сделать это в getViewAt()
следующим образом:
@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;
}
Однако, когда я помещаю виджет на домашний экран, я получаю ANR, потому что выдается исключение, так как RemoteViewsService возвращает RemoteViews
, что составляет null
, хотя я не до конца понимаю, почему это происходит.
Я пытался выполнить ту же задачу, используя Picasso, которая на самом деле является библиотекой изображений, которую я использую чаще, но (вкратце) я также не смог заставить ее работать.
Кто-нибудь пытался загрузить несколько изображений для RemoteViews
?Любая помощь по этому вопросу будет принята с благодарностью.