关于缩略图创建的问题似乎得到了很多关注,并且每次似乎都提出了许多不同的解决方案。根据我的经验,所提供的答案实际上都不够,而且似乎都有自己的缺陷。
a)重新调整大小时的内存问题
b)效果问题/渲染速度慢
因此,我想发布一个关于我希望有人可以协助的非常常见的功能要求的问题。
'用户使用活动生成报告,并使用内部相机拍摄相关照片。报告与图像路径一起保存到SQLLite数据库。用户希望在将来的某个时间点在可滚动列表视图中查看报表。报告数量可以是1..100'
因此,鉴于这些要求,我的问题如下
1)鉴于数据我还没有找到一种可靠的/执行/内存优化的方法来在运行时将全尺寸图像调整为给定的缩略图,我应该在图像捕获时创建一个较小的图像吗?
2)如果你需要在ListView中显示很多项目,你应该使用分页还是可以在一个ListView中显示100个项目?
由于
答案 0 :(得分:0)
关于数字2:你可以做的是首先加载一个子集(比如前30个,取决于你的listview项目大小),并异步加载其余部分并将它们附加到你的适配器。这将减少屏幕的加载时间。
答案 1 :(得分:0)
1 /为什么要重新发明轮子:)有些库已经为你做了并且做得很好。例如,请参阅picasso或AQuery(还有其他库)。
基本上,他们在SD卡/内部存储器的某处有缩略图缓存,以保留最后N个请求的缩略图。
我不知道您是否将图像数据保存在数据库中,在这种情况下,您可能必须调整其中一个库以从数据库加载图像数据而不是从文件加载,因为通常情况下
2 /为什么要重新发明轮子:)有些库已经为你做了并且做得很好。例如,请参阅https://github.com/commonsguy/cwac-endless(以及google了解更多信息)