2015-12-23 1 views
2

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

1: если я .resize(x,y) изображение в моем коде, то Пикассо кэширует только оригинальный размер или малоформатной один тоже?

2: память и дисковый кэш хранятся с разным кеш-ключом?

ответ

7

Да и нет.

Picasso caches измененные размеры. Если вы вызываете resize(50, 50) по URL дважды, второй запрос будет использовать измененное изображение, которое было кэшировано в памяти. В этом случае HTTP-клиент никогда не увидит URL-адрес.

HTTP-клиент, который использует Picasso, будет кэшировать исходное изображение (если это настроено для этого, и заголовки позволяют это). Если вы вызываете resize(50, 50) по URL-адресу, оригинал будет кэшироваться на диске клиентом HTTP, так что если вы вызываете resize(100, 100) по этому URL-адресу, HTTP-клиент не должен снова получать изображение.

Кэш-клиент HTTP полностью непрозрачен для Picasso. Он не видит и не контролирует его содержимое. Picasso делает HTTP-запрос для каждого URL-адреса, который недоступен в кеше памяти, и HTTP-клиент загружает его или обслуживает его из локального кеша, полностью контролируется внутри HTTP-клиента.

+0

очень четкий ответ – GPack

1

1 - Да, пикассо только кэширует первоначальный размер.

2 - Да.

Глобальный экземпляр Picasso по умолчанию, возвращаемый с помощью(), автоматически инициализируется значениями по умолчанию, которые подходят для большинства реализаций.

  • кэш-памяти LRU 15% доступных приложений RAM

  • Дисковый кэш 2% дискового пространства до 50 МБ, но не менее 5 МБ.

Дополнительная информация о кешировании в Пикассо.

How do I use disk caching in Picasso?

Comparission с скольжением (также детали о кэшировании)

http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en

+2

Ваш ответ на 1 неверен. Picasso только кэширует измененные изображения в кеше. HTTP-клиент, который использует Picasso, может иметь кеш, который кэширует исходные изображения. –

+0

Спасибо за исправление @JakeWharton, документация не ясна. – AndroidRuntimeException

 Смежные вопросы

  • Нет связанных вопросов^_^