Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将相同的画廊图像加载到两个不同的活动片段中_Android_Image_Imageview_Android Recyclerview_Picasso - Fatal编程技术网

Android 将相同的画廊图像加载到两个不同的活动片段中

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中再次加载

目前,我有一个主要活动,其中有一个片段加载到它与一个RecyclerView。在RecyclerView适配器中,我使用毕加索根据存储的URI字符串加载用户库中的图像,如下所示:

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);