我有一个关于从网上加载图片并可能存储的问题,与此相关的方法应该怎么选择。假设我从我的Android应用程序中调用了一个Web服务,在这个Web服务中,我获得了一张网上的图片URL。我会下载并在ListView的列表项左侧显示这个图片。我的问题是,应该使用什么方法来存储图片?
- 将其保存到SD卡中,并在创建ListView时检查它是否存在(在后续请求中),必要时重新下载(同时定期更新图片,以防其更改)。
- 使用Context.getCacheDir()将其存储在缓存中,但由于无法保证图片在缓存中保留,可能需要更频繁地重新下载。
- 始终下载它,而不存储图像。
这些图像文件本身相当小,但我希望有些用户可以下载/存储几十个这样的小图像。哪种方法最好,或者说哪种方法是首选的呢?
另外一个问题是,我应该先加载ListView中的所有图像(可能会锁定UI一段时间),还是异步加载它们,同时在此期间显示一个占位符图像(可能会更“丑”)?在这里,标准是什么?