Кэширование не работает с Picasso

Когда я использую образец проекта Пикассо, представленный на их странице Github, изображения кэшируются. Означает, что после загрузки они появляются, даже когда я отключаю интернет-соединение.

Но когда я использую тот же метод для загрузки изображения с того же URL в другом проекте, изображения не кэшируются. Я также использую Android 4.2.2 (для кеша диска требуется ICS+). Так в чем здесь может быть проблема?

Вот простой код, который они использовали, и я использую

Picasso.with(context) //
        .load(url) //
        .placeholder(R.drawable.placeholder) //
        .error(R.drawable.error) //
        .fit() //
        .into(view);

person Diffy    schedule 19.08.2014    source источник


Ответы (2)


Если вы используете только библиотеку Picasso, кэширование не произойдет. Используйте okhttp для кэширования. Например: если вы используете picasso-2.1.1.jar, используйте okhttp-1.2.1-jar-with-dependencies.jar для кэширования.

В противном случае попробуйте библиотеку Glide, которая похожа на реализацию picasso. Что отлично работает при загрузке изображения из кеша.... Проверьте Glide Glide Github Пример 2

person Harsha Vardhan    schedule 10.09.2014
comment
Я дал ту же ссылку в своем вопросе. - person Diffy; 10.09.2014

В build.gradle

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// You must install or update the Google Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
oldCompile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.google.android.gms:play-services:4.2.42'
compile 'com.squareup.retrofit:retrofit:1.6.1'
compile 'com.squareup.okhttp:okhttp:2.2.0' //updated this
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' //updated this
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.squareup.picasso:picasso:2.5.0' //updated this
compile files('libs/robotium-solo-5.2.1.jar')
}

Он не кэшировал изображения для меня, но когда я обновил OkHttp, OkHttp-urlconnection, Picasso до последних версий, это сработало. Попробуйте http://gradleplease.appspot.com, чтобы получить последние версии.

person Roman    schedule 10.02.2015