Кэширование изображений с помощью библиотек Anroid

Мое приложение получает список объектов фильма, который включает URL-адрес плаката фильма, и отображает эти плакаты и заголовки, а затем, когда пользователь нажимает на этот фильм, он переходит к действию деталей фильма, у которого также есть плакат и заголовок, вместе с дополнительной информацией. Довольно просто. Я заметил, что, когда я нажимаю на фильм, есть еще секунда или две, когда плакат не загружается, и я бы хотел устранить это, что кажется относительно простым с кешированием. Я использовал Picasso, я недавно переключился на Coil для загрузки изображений, и оба они заявляют, что обрабатывают кеширование за кулисами, но я предполагаю, что этого не происходит из-за этого времени загрузки. В обоих действиях я просто загружаю его:

posterImageView.load(it.posterURL ?: {url of "no poster found" image})

Есть ли что-то еще, что мне нужно делать, чтобы загружать их из кеша вместо того, чтобы каждый раз загружать изображение с URL-адреса?

1 ответ

Согласно официальной документации здесь вы должны использовать LruCache, как определено здесь. Но есть и обходной путь:

Для хранения большого количества изображений вы должны сначала создать временную папку, к которой может получить доступ только ваше приложение (обычно внутри data / data / package_name /), а затем сохранить каждое изображение, которое вы загружаете в первый раз, в этой папке, указав ключ как название изображения. После этого всякий раз, когда вам нужно показать изображение, просто используйте условие «если», чтобы проверить, сохранено ли изображение для этого конкретного ключа (имя, из которого вы сохранили изображение) или нет. Если да, то покажите изображение. (Просто не забудьте очистить изображения папок при следующем открытии приложения).

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