Кэширование изображений в Android - PullRequest
1 голос
/ 09 января 2020

Я ищу наилучшее практическое решение для кэширования изображений в android .. Я рассмотрел Glide в своей реализации кода, как показано ниже:

   RequestOptions requestOptions = new RequestOptions()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .signature(new ObjectKey(logo));

        Glide.with(view.getContext()).load(logo).apply(requestOptions).into(view);

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

Ответы [ 3 ]

0 голосов
/ 09 января 2020

Попробуйте использовать Glide так:

RequestOptions options = new RequestOptions()
                .dontAnimate()
                .centerCrop()
                .placeholder(R.drawable.placeholder) //Use a placeholder image
                .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
                .priority(Priority.HIGH);


        Glide.with(getActivity())
                .load(uri)
                .thumbnail(0.1f)
                .apply(options)
                .into(view);
0 голосов
/ 08 февраля 2020

Поздний ответ, но вы можете проверить библиотеку ColdStorage (https://github.com/crypticminds/ColdStorage) для кэширования изображений только с аннотациями.

Просто аннотируйте вид изображения с помощью аннотацию

@LoadImage(R.id.my_image_view, "url_to_download_image_from")
ImageView imageview;

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

Подробное описание аннотации представлено здесь: - https://github.com/crypticminds/ColdStorage/wiki/@LoadImage-annotation

0 голосов
/ 09 января 2020

Я рекомендую вам использовать Picasso вместо:

Picasso.with(context)
        .load(url)
        .into(image_view)

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

setIndicatorsEnabled(true)
...