我是android开发的初学者。我使用Picasso从URL获取到一个活动'A'的集合图像,并安排在GridView中。现在,我想将用户点击的图像传递给Intent。如何将获取的图像之一传递给另一个活动,而无需再次获取图像。
请帮帮我。
谢谢。
答案 0 :(得分:1)
如果您尝试在ActivityB中重复使用ActivityA中获取的图像而不再重新获取,则除了调用
之外,您不必执行任何操作Picasso.with(context).load(url).into(imageView)
两地。
如果两个活动的 url 参数相同,Picasso会自动从缓存中获取图像(当您在ActivityA中调用load时存储它),而不是进行另一次网络调用。
Picasso会自动将您的图像缓存在RAM中,并在内部使用okhttp将其缓存在磁盘中。因此,您不必通过意图明确传递它。
要查看从哪里加载,您可以致电
Picasso.with(getContext()).setIndicatorsEnabled(true).
这会在每张图片的左上角放置一个彩色标记。
红色表示已从网络中调用此内容。
蓝色 - 磁盘。
绿色 - 内存。
在ActivityA中,它应该是红色的,因为您是从网络加载的。 在ActivityB中,它应该是绿色(或蓝色),因为你是从缓存中获取它。
答案 1 :(得分:0)
我认为您需要在imageView
中创建另一个ActivityB
,当用户点击某个gridView
元素时,会传递imageUrl
元素并加载ActivityB
上的class Product(Model):
"""
Base Product Model
"""
shop_id = columns.UUID(primary_key=True, required=True)
product_id = columns.UUID(primary_key=True, required=True, default=uuid.uuid4)
wikimart_id = columns.Integer(index=True) # Convert to user defined type?
yandex_id = columns.Integer(index=True)
1}}无论哪种方式,我认为你不能将已经加载的imageView传递给 ActivityB 而不再重新加载图像..