我想实现一个图片库,我对我的解决方案的性能不满意。我的应用程序创建小缩略图(大约1k文件大小/ 64x64px)并将它们存储到SD卡上。 将这些图像从SD卡加载到视图中需要花费一些时间(每个缩略图20ms)并导致图库不能非常平滑地滚动。
我尝试使用BitmapFactory.decodeStream或BitmapDrawable(InputStream)加载图像。我不想要一个完整的内存缓存,因为 - 取决于图片的数量 - OutOfMemory可能会出现并且很多时候初始创建缓存任务。
有人知道如何以更快的方式加载图像吗?这个framworks是免费的吗?或者或或......
答案 0 :(得分:0)
我建议您阅读Android Google论坛上的“File I/O and efficiency”帖子。在基准测试作者得出结论之后,文件I / O的最有效方式是"batch operation on a memory mapped ByteBuffer"
。
在您的情况下,使用一个大文件进行缩略图存储可能更有效,而不是数百个小文件。您可能还需要一个单独的文件进行索引(例如,用于在大缩略图文件中映射文件名/编号和开始/结束位置) - 但这取决于您的逻辑。