繁体   English   中英

Android +毕加索:如何正确显示来自URL的图像以形成缓存

[英]Android + Picasso: How to show images from URL properly form cache

我现在正在开发Android应用程序,我需要在数据库中为每个对象存储图像网址,然后从Web加载该图像(如果连接已打开)或从缓存中获取它(如果没有)。 毕加索似乎是处理Android中图像的最佳库,因此我开始使用它。 但是我不知道如何正确使用它。 甚至更多-图像是在第一次从API获取后立即奇怪地加载到视图中,但是如果用户再次启动应用程序,则我们只能看到占位符(即使打开了互联网连接)。 有人可以提出解决方案,或者至少提出任何最佳方法的想法吗?

我在Adapter中的代码(在ShowActivity中也是如此):

String img_url = item.getImage(); // img_url is valid image url
Picasso.with(mContext).load(img_url).placeholder(R.drawable.plchldr).fit().centerCrop().into(holder.image);

我一开始也尝试使用Picasso,但发现它们的缓存系统太糟糕了。 它会缓存一些我下载的图像,但不会缓存其他图像,因此会留下很多带有占位符的图像。

我建议您尝试使用Universal-Image-Loader( https://github.com/nostra13/Android-Universal-Image-Loader )。 我目前正在使用它来缓存我的应用程序中的所有图像,并且它可以完美地工作(大约200张图像atm)。

最终解决了这个问题-API返回了有效的图像URL,但实际上它(图像)托管在S3云中,并且一直到期,直到用户再次加载应用程序为止。 因此,在这种情况下,实际上保存过期的图像URL是没有用的。 我不知道我该怎么办(似乎唯一的方法很困难-将图像作为位图存储在SD上)。 但是我只是想告诉那些会遇到类似问题的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM