对于我的应用程序,我目前正在阅读存储在手机上的所有图像 (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 的本机图库应用程序这样的东西,最好的方法是什么,它似乎没有“加载更多图像”按钮,而是无穷无尽的图像流?
谢谢