2015-10-08 5 views
0

Я делаю предварительный выбор изображения с помощью Picasso, и он не кэшируется. Звонки являются:Picasso not pre-fetching image

В предыдущей деятельности у меня есть:

Picasso.with(this) 
    .load(uri) 
    .fetch(); 

И в следующей деятельности у меня есть:

Picasso.with(this) 
    .load(uri) 
    .fit() 
    .centerInside() 
    .placeholder(R.drawable.placeholder) 
    .error(R.drawable.error) 
    .into(profileImage, null); 

Что может быть происходит?

ответ

1

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

Picasso.with(this) 
     .load(uri) 
     .fetch(); 

Пикассо сохраняет изображение в кэше, используя URL-адрес в качестве ключа (оригинальное изображение сохраняется на вашем диске/RAM), но когда вы пытаетесь представить изображение с помощью метода .into(), ключ, который генерируется Picasso, на самом деле отличается от другого, поскольку он включает в себя размер образа изображения, для хранения загруженного изображения. Поэтому, если вы хотите поместить в кеш точный образ, который вам понадобится, вы должны включить метод изменения размера в свой запрос на выборку (этот размер должен совпадать с вашим изображением), например.

Picasso.with(context).load(imageUrl) 
    .resize(targetWidth,targetHeight) 
    .fetch(); 
+0

Попробуем! благодаря – gonzalomelov