Загрузка URL-адреса изображения в Kotlin AppWidget с помощью Glide

Я поискал в Интернете пример того, как загрузить удаленное изображение в Kotlin. Существует множество примеров Kotlin, использующих Glide с обычным ImageView, но нет ничего, что связано с удаленными ImageView внутри AppWidget.

Лучший ресурс на данный момент находится здесь, но он на Java: https://futurestud.io/tutorials/glide-loading-images-innnto-notifications-and-appwidgets

Я добавил Kotlin перевод ниже ...


person Elletlar    schedule 17.04.2018    source источник


Ответы (1)


class DeviceIntelWidget : AppWidgetProvider() {
    override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager?, 
    appWidgetIds: IntArray) {
        ...
        val remoteViews = RemoteViews(context.packageName, R.layout.widget)
        val awt: AppWidgetTarget = object : AppWidgetTarget(context.applicationContext, R.id.img, remoteViews, *appWidgetIds) {
            override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
                super.onResourceReady(resource, transition)
            }
        };    
        Glide.with(context.applicationContext).asBitmap().load("https://si.com/img.jpg").into(awt)
        ...
    }
}

Примечания:

  • AppWidgetTarget используется для отображения загруженных растровых изображений внутри ImageView AppWidget через RemoteViews.
  • Вызов load для загрузки растровых изображений и выполнения любой постобработки внутри onResourceReady
  • реализация 'com.github.bumptech.glide:glide:4.2.0' принудительно закрывается с NoClassDefFoundError: android.support.v4.util.ArrayMap
  • Обновление до последней версии: 4.7.1 устраняет проблему
person Elletlar    schedule 17.04.2018