目前我有一个主要活动,其中有一个Fragment加载了RecyclerView。在RecyclerView适配器中,我使用Picasso根据我喜欢的存储URI字符串从用户的图库中加载图像:
Picasso.with(context)
.load(imageUri)
.resize(400, 400)
.into(viewHolder.imageView);
当用户点击RecyclerView中的其中一个项目时,我转到一个新的Activity并在其自己的Fragment onCreateView内部我再次加载相同的图像,但是它的大小稍大(因为ImageView我将它加载到尺寸较大)
Picasso.with(getActivity())
.load(imageUri)
.resize(600, 600)
.centerCrop()
.into(imageView);
我的问题是......假设这些图像可能非常大......
当RecyclerView首次需要600px X 600px时,是否有更好的方法加载此图像,然后在需要它的后续活动和碎片中重复使用位图数据而不重新加载?
我可以使用像Volley这样的不同图像加载器,如果这样做的话更好。
任何帮助都将不胜感激。
马
答案 0 :(得分:1)
你可以试试Glide它有几乎相同的api。当Picasso只使用http缓存并且难以控制时,而不是Picasso滑动有自己的缓存实现。在滑行中,您需要指定diskCacheStrategy.ALL以使您想要的滑行缓存。这是cache wiki