Загрузить изображение с Glide для AppWidget

Я работаю над своим первым виджетом приложения. Все хорошо, кроме одной вещи. Я не могу выяснить, как я могу загрузить изображение в ImageView в методе getViewAt () RemoteViewsFactroy с Glide. Я всегда получаю сообщение об ошибке, потому что мне приходится сталкиваться с (AppWidgetTarget) в MainThread, но я не могу вызвать новый обработчик (Looper.getMainLooper ()) из RemoteViewsFactory.

1 ответ

Glide поддерживает это, предоставляя класс AppWidgetTarget.

При обновлении вашего виджета в onUpdate(), вы создаете новый AppWidgetTarget, передаете ему RemoteViews object, 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 );

Приведенный выше пример кода взят из этого замечательного набора учебных пособий по планированию. Учебные руководства охватывают многие практические аспекты использования скольжения.

Аналогично, целевой класс NotificationTarget также предоставляется glide - он решает ту же проблему, но для уведомлений вместо appWidgets.

Другие вопросы по тегам