Android 毕加索图像加载库中的一些问题

Android 毕加索图像加载库中的一些问题,android,image-caching,picasso,Android,Image Caching,Picasso,我正在开发一个小应用程序,它主要是一个特定企业的目录。一切都是通过休息服务获得的。我在浏览企业列表时遇到了一些处理图像的问题 构成每个列表项的图像是一个背景(用作业务的“旗帜”)和最多5个小图标,代表业务提供的最重要的服务 我开始使用毕加索异步加载这些图像,希望可以避免创建任何自己的缓存。但是,我遇到了几个问题: A) 最大的一个问题是,在低端手机(运行Android 2.2的LG Optimus V)上,背景/横幅总是无法加载。我正在使用毕加索的error()选项来加载一个占位符,当背景无法加

我正在开发一个小应用程序,它主要是一个特定企业的目录。一切都是通过休息服务获得的。我在浏览企业列表时遇到了一些处理图像的问题

构成每个列表项的图像是一个背景(用作业务的“旗帜”)和最多5个小图标,代表业务提供的最重要的服务

我开始使用毕加索异步加载这些图像,希望可以避免创建任何自己的缓存。但是,我遇到了几个问题:

A) 最大的一个问题是,在低端手机(运行Android 2.2的LG Optimus V)上,背景/横幅总是无法加载。我正在使用毕加索的error()选项来加载一个占位符,当背景无法加载时,它是可绘制的,但每个占位符都无法加载,我不知道为什么。我注意到的是:

  • 小图标加载得很好
  • 来自毕加索的onImageLoadFailed回调实际上不会触发。但是我用error()指定的占位符不会加载
  • 内存似乎不是问题,因为如果这些横幅是本地的而不是远程的,我完全能够加载它们(相同的资产大小)
  • 这个问题不会发生在运行2.3的DroidX和一些高端设备上
B) 在所有设备上,服务图标和横幅似乎都不会缓存到磁盘(毕加索调试模式表示它们总是先从远程源加载,然后再从内存加载),即使毕加索应该自动这样做。不确定我是否错过了一些设置或什么

事实上,如果我能在应用程序开始时预取服务图标,那将是最好的,因为它们在列表(业务)项目之间重复了很多。它们不可能是本地资产,因为可能的服务列表随时都可能增长,因此会定期出现更多图标。但如果在活动开始时,我可以查询我的服务列表(已经有了一个休息点),并预取所有图标并缓存它们,那就太好了。有没有“简单”的方法可以做到这一点


感谢您对这些问题的指导。

回答这个问题很晚,但这里是:

A) 结果证明这是安卓2.2的SSL实现有缺陷的一个问题。我的图像可以通过HTTPS和HTTP访问。我正在使用HTTPS URL,请求失败。我只是切换到HTTP URL,在2.2中一切都开始正常工作


B) 我一直无法确切地知道这是否是真的,毕加索的调试模式中是否有bug,或者是什么。在进行更多测试后,我注意到应用程序的缓存存储确实会随着时间的推移而增加(即,随着访问的图像越来越频繁),这表明存在缓存。但是,我认为可以缓存HTTP响应,而不是缓存图像文件,这可以解释为什么毕加索的调试模式表明它们是从源代码请求的,但仍然像缓存一样快速出现。

您升级到最新版本了吗?2013年底出现了一些问题,一些图像文件没有下载