Многие уже наверняка сталкивались с проблемой OutOfMemoryError и находили достаточно толковый мануал Displaying Bitmaps Efficiently. Но если вы еще не успели изобрести свой велосипед на основе мануала, предлагаю свое готовое решение с объяснениями, которое умеет получать изображения:
- В формате Bitmap и byte[]
- Уменьшенное с сохранением пропорций
- Уменьшенное с вырезанием (crop) до заданного размера width x height
- Оптимизированное для 2g
- Всегда в правильной ориентации (учитывая EXIF orientation)
Пример использования
ImageManager im = new ImageManager(ctx, 100, 100);
Bitmap bm = im.setIsScale(true)
.setIsResize(true)
.setIsCrop(true)
.getFromFile(myUri.toString());