Для моего приложения в настоящее время я просматриваю ВСЕ файлы изображений (JPEG), хранящиеся на телефоне, и сохраняю их идентификатор и миниатюры (НЕ исходное растровое изображение) на 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 изображений на моем телефоне, и теперь он работает нормально. Но я беспокоюсь, что в определенный момент у приложения закончится память и произойдет сбой.
Заканчивается память что-то, что мне нужно принять во внимание? Или миниатюры достаточно малы, что, на самом деле, приложение не исчерпывает память?
EDIT Если я должен беспокоиться о нехватке памяти, что это лучший способ, если я хочу что-то вроде родной галереи приложения Android, которая, кажется, не имеет кнопку «Загрузить больше изображений», а скорее бесконечную поток изображений?
Благодаря