Я новичок в Android и разрабатываю приложение, которое сохраняет большие изображения из папки с возможностью рисования в хранилище телефона. Эти файлы имеют разрешение 2560x2560, и я хочу сохранить эти файлы без потери качества изображения.
Я использую следующий метод для сохранения изображений, и он дает мне Исключение нехватки памяти. Я видел много ответов, как эффективно загружать большие растровые изображения. Но я не могу найти ответ на эту проблему.
В моем коде я использую
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imageId);
File file = new File(root.getAbsolutePath() + "/Pictures/" + getResources().getString(R.string.app_name) + "/" + timeStamp + ".jpg");
file.createNewFile();
FileOutputStream oStream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, oStream);
oStream.close();
bitmap.recycle();
Что-то не так с моим кодом? Это работает без каких-либо исключений для небольших изображений.
Если я использую android:largeHeap="true"
, это не вызывает никаких исключений. Но я знаю, что использовать android:largeHeap="true"
не рекомендуется.
Есть ли какой-либо эффективный способ без исключения сохранять большие изображения из папки с возможностью рисования?
Заранее спасибо.