Intereting Posts
Kotlin Pass в типе, который реализует параметризованный интерфейс Приложение Kotlin не показывает мой json-массив Класс данных Kotlin Jackson @ JsonProperty не отмечен Как разрешить нарушение ограничения конечного ограничения в Котлине? Как объединить план и предыдущий Single Как исправить мой код, чтобы удалить предупреждение о литье? Интервал Рабочего Планировщика называется слишком нерегулярным Аннотации пользовательских квалификаторов Moshi в Котлине Android проверяет, соответствует ли текстовый ввод (время) формату Невозможно включить предупреждение «тип платформы объявлений» Kotlin в сообщение об ошибке Kotlin Generics: Котлин не признает мой класс с правильным наследованием RxJava: как вернуть правильный тип null Функция Kotlin Call Javascript в Android без webView Как ограничить параметр функции расширения Kotlin таким же, как и расширенный? Как наблюдать данные PagedList?

Использование Glide для кэширования изображений веб-просмотра

Я хотел бы использовать Glide для управления ресурсами изображения моего веб-представления, главным образом для того, чтобы я мог повторно использовать их позже в других представлениях.

Я настроил перенаправление путем перехвата загрузок ресурса изображения и возврата следующего WebResourceResponse :

 class ImageResponse(view: WebView, url: String) : WebResourceResponse("", "", null) { val futureBitmap = GlideApp.with(view).asBitmap().load(url).submit() override fun getData(): InputStream { val bos = ByteArrayOutputStream() futureBitmap.get().compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos) val bitmapdata = bos.toByteArray() return ByteArrayInputStream(bitmapdata) } } 

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

Однако этот метод значительно медленнее, чем собственный метод webview (~ 5s против ~ 8s).

Частично это может быть связано с тем, что Glide должен подтвердить нить ui каждым запросом, чтобы убедиться, что представление действительно, прежде чем продолжить загрузку.

Есть ли что-то, что я могу сделать для улучшения процесса загрузки?

(Я также хотел бы подтвердить, что submit() начинает загружать ресурсы немедленно, а не ждать, пока get() будет вызван в будущую цель, но я еще не нашел способ добавить слушателя и не вижу это в документах)