Android - используйте пикассо для загрузки изображения без сохранения его в кеш
Я хочу использовать picasso для загрузки изображения с URL-адреса в местозаполнитель, но не хранить это изображение в кеше - другими словами, я хочу, чтобы изображение загружалось из сети прямо на диск, а затем загружалось с диска, когда необходимо. Я понимаю, что существует класс под названием RequestCreator, где вы можете указать политику памяти - есть ли у кого-нибудь пример использования picasso/requestcreator, чтобы сделать что-то вроде этого?
Итак.. что-то вроде:
RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....
сливается с:
Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
Ответы
Ответ 1
Picasso поддерживает это skipMemoryCache()
в построителе Picasso. Пример показан ниже.
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.skipMemoryCache()
.into(imageView);
С помощью нового API вы должны использовать его так, чтобы он пропускал поиск и сохранял его в кеше:
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
NO_CACHE
Просканирует поиск кеша памяти при обработке запроса.
NO_STORE
Пропускает сохранение окончательного результата в кеш памяти. Полезно для одноразовых запросов избегать высылки других растровых изображений из кеша.
Ответ 2
Для picasso:2.71828
или более picasso:2.71828
версии используйте следующее для пропуска с использованием дискового кэша networkPolicy(NetworkPolicy.NO_CACHE)
:
Picasso.get()
.load(camera_url)
.placeholder(R.drawable.loader2)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.into(img_cam_view);
Ответ 3
просто добавьте это в конце URL.
"?=" + System.currentTimeMillis();