,我注意到缓存未正常工作,我期望:毕加索缓存似乎没有我使用的毕加索来处理图像加载和缓存在我的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
嗯,我以为毕加索会下载原始图像,然后在随后的调用中调整大小。如果这实际上是毕加索正在做的事情(只缓存确切的大小)是否有办法禁用,并让毕加索缓存原始图像? –