【问题标题】:What is the fastest way to load an image from SD card into a view将图像从 SD 卡加载到视图中的最快方法是什么
【发布时间】:2011-07-11 21:44:20
【问题描述】:

我想实现一个图片库,但我对我的解决方案的性能不满意。我的应用程序创建小缩略图(大约 1k 文件大小/64x64px)并将它们存储到 SD 卡上。 将这些图像从 SD 卡加载到视图中会花费一些时间(每个缩略图 20 毫秒),并且会导致画廊滚动不太顺畅。

我尝试使用 BitmapFactory.decodeStream 或 BitmapDrawable(InputStream) 加载图像。我不想要一个完整的内存缓存,因为 - 取决于图片的数量 - OutOfMemory 可能会发生并且缓存任务的初始创建需要很多时间。

有人知道如何以更快的方式加载图像吗?框架是免费的吗?或或或...

【问题讨论】:

    标签: android performance image load


    【解决方案1】:

    我建议您阅读 Android Google 群组上的“File I/O and efficiency”帖子。在基准测试作者得出结论后,文件 I/O 最有效的方式是"batch operation on a memory mapped ByteBuffer"

    在您的情况下,使用一个大文件存储缩略图可能比使用数百个小文件更有效。您可能还需要一个单独的文件进行索引(例如,用于在大缩略图文件中的文件名/编号和开始/结束位置之间的映射)-但这取决于您的逻辑。

    【讨论】:

    • 我会尝试,但这需要一些时间。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多