我最近使用我使用媒体查询和媒体库设计的自定义图库对显示图片进行了一些测试...它工作得很好但我真的需要做一些自定义的事情。
我不希望在媒体商店中扫描或提供图片,因此我希望我的应用扫描目录并创建缩略图并显示这些缩略图。
我发现它真的很薄,找到任何高质量的例子来做到这一点。
任何人都可以帮助一个小例子。
以下是我要做的事。
我想我只需要一些帮助就可以从目录中获取图片,因为我没有存储整个媒体库,所以我无法使用查询。另一件令我担心的事情是,我需要为这些图像中的每一个创建缩略图(在运行中?)因为显示图像但是尺寸减小我会怀疑性能会非常差。
任何人都可以伸出援助之手吗?
提前致谢
答案 0 :(得分:2)
前段时间我做的完全相同。您必须将图像所在的文件夹名称传递给setBaseFolder
。这个方法反过来调用refresh()
- 使用FilenameFilter
(代码未包含但很容易实现)从该文件夹中获取名为orig_....jpg
的所有图像并将其保存在{{1}中}。然后我们调用mFileList
,然后为每个单元格触发notifyDataSetChanged()
。
现在,在getView()
我们要么从缓存中获取缩略图位图,如果我们已经有了它,否则我们制作一个灰色占位符并启动getView()
来创建缩略图。从中获取位图。
我认为你必须稍微更改ThumbnailBuilder
,因为我创建了相当大的“缩略图”(500x500),因为我还需要调整大小的图像用于其他目的。此外,当我处理相机拍摄的照片时,有一些东西,根据exif信息旋转图像。但基本上,ThumbnailBuilder
只检查是否已有缩略图(我的缩略图图像放在同一个文件夹中,但前缀为ThumbnailBuilder
而不是small_
) - 如果缩略图已经存在,我们将其作为orig_
得到并完成,否则生成图像。最后,在Bitmap
中,位图设置为ImageView。
onPostExecute()