Android 将相同的画廊图像加载到两个不同的活动片段中
目前,我有一个主要活动,其中有一个片段加载到它与一个RecyclerView。在RecyclerView适配器中,我使用毕加索根据存储的URI字符串加载用户库中的图像,如下所示:Android 将相同的画廊图像加载到两个不同的活动片段中,android,image,imageview,android-recyclerview,picasso,Android,Image,Imageview,Android Recyclerview,Picasso,目前,我有一个主要活动,其中有一个片段加载到它与一个RecyclerView。在RecyclerView适配器中,我使用毕加索根据存储的URI字符串加载用户库中的图像,如下所示: Picasso.with(context) .load(imageUri) .resize(400, 400) .into(viewHolder.imageView); 当用户单击RecyclerView中的其中一个项目时,我将进入一个新活动,并在其自身的片段onCreateView中再次加载
Picasso.with(context)
.load(imageUri)
.resize(400, 400)
.into(viewHolder.imageView);
当用户单击RecyclerView中的其中一个项目时,我将进入一个新活动,并在其自身的片段onCreateView中再次加载相同的图像,但其大小稍大(因为我加载到的ImageView的大小更大)
我的问题是…假设这些图像可以相当大
是否有更好的方法在RecyclerView第一次需要位图数据时,以600px X 600px的速度加载一次该图像,然后在后续需要位图数据的活动和片段中重用该位图数据,而无需重新加载
如果更好的话,我愿意使用不同的图像加载器,比如Volley
任何帮助都将不胜感激
Marco您可以尝试一下,它的api几乎相同。与毕加索不同,glide有自己的缓存实现,而毕加索只使用http缓存,很难控制。在glide中,您需要指定使glide缓存成为您想要的所有缓存。这是谢谢你。我会看看Glide是否适合我的需要。它不能解决在新环境下再次加载图像的问题。@SouravChandra不可能是真的,对我来说效果很好,看起来你做错了什么。你能提供一个你的代码的例子吗?我尝试使用Glide,因为它有很多很好的参考资料,但是一些设备中没有加载图像,例如在Samsumg Galaxy Nexus s7 Edge上,图像仍然是“空白的”:@RichardSilveira所有库都有bug,如果你能复制它-lust修复它并发送PR;)
Picasso.with(getActivity())
.load(imageUri)
.resize(600, 600)
.centerCrop()
.into(imageView);