【发布时间】:2013-05-01 11:26:50
【问题描述】:
对于我的应用,我目前正在阅读手机上存储的所有图像 (JPEG) 文件,并将它们的 ID 和缩略图(不是原始位图)保存到 HashMap 中。
代码:
final String[] PROJECTION =
new String[] {MediaStore.Images.Media._ID};
Cursor pictureCursor = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI,
PROJECTION, null, null, MediaStore.Images.Media._ID);
HashMap<Integer,Bitmap> thumbnails = new HashMap<Integer,Bitmap>();
int id;
int id_index = pictureCursor.getColumnIndex(MediaStore.Images.Media._ID);
int THUMBNAIL_TYPE = MediaStore.Images.Thumbnails.MICRO_KIND;
ContentResolver content_resolver = context.getContentResolver();
while (pictureCursor.moveToNext()) {
id = pictureCursor.getInt(id_index);
Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(content_resolver, id, THUMBNAIL_TYPE, null);
thumbnails.put(id, thumbnail);
}
我的手机上目前有 200 张图片,现在可以正常使用。但我担心在某些时候,应用程序会耗尽内存并崩溃。
我需要考虑内存不足吗?或者缩略图是否足够小以至于实际上应用不会耗尽内存?
编辑 如果我担心内存不足,如果我想要像 Android 的原生图库应用这样的东西,它似乎没有“加载更多图像”按钮,而是无穷无尽的图像流,那么最好的方法是什么?
谢谢
【问题讨论】:
标签: android memory-management thumbnails