Я использую Пикассо для обработки загрузки изображений и кэширование в моем проекте Android Udacity и я заметил, кэширование не работает, как я бы ожидать:Пикассо Кэширование не кажется, работает
Как вы можете видеть на левом фрагменте, изображение уже загружено в более ранний поток. Теперь, с той же ссылкой URL, я прошу Пикассо разместить это изображение в фрагменте справа.
Вот код, который генерирует вид сетки на левом фрагменте (и происходит первый):
String load = String.format(sImgUrl, sImgSize, movie.poster_path);
Picasso.with(mContext.getApplicationContext())
.load(load)
.placeholder(R.drawable.abc_btn_rating_star_on_mtrl_alpha)
.error(R.drawable.abc_btn_rating_star_off_mtrl_alpha)
.resize(550, 775)
.into(viewHolder.imageView);
А то вот код, который работает в нужном фрагменте:
Picasso.with(getActivity().getApplicationContext())
.load(String.format(sImgUrl, sImgSize, mMovieObj.poster_path))
.error(R.drawable.blank)
.fit()// .resize(366, 516)
.into(mMovieThumb, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
Utils.log(sw.toString());
Utils.hideViewSafe(mMovieThumbProgress);
}
@Override
public void onError() {
Utils.log(sw.toString());
Utils.hideViewSafe(mMovieThumbProgress);
}
});
Я использую тот же контекст приложения в каждом, а также текст загрузки:
String.format(sImgUrl, sImgSize, mMovieObj.poster_path))
и
getActivity().getApplicationContext()
Так, я думаю, Пикассо должен определить, когда точно такой же нагрузки URL ссылка появляется в том же контексте в течение короткого периода времени друг от друга, и Пикассо затем загрузит то же самое изображение обратно в приложение.
Если это не так, как работает кеширование Пикассо, то как это сделать?
Не знаете, как это работает, но я думаю: размер имеет значение. Пикассо, создающее разные версии одного и того же изображения, может объяснить это поведение. – zapl
Хмм, я бы подумал, что Пикассо загрузит необработанное изображение, а затем изменит размер в следующем вызове. Если это на самом деле то, что делает Пикассо (только кеширование точного размера), есть ли способ отключить его, а кеш Пикассо - исходное изображение? –