Я выбираю изображения через камеру / галерею, используя приведенный ниже код, и сохраняю их пути в Sq Lite, это нормально. Все работает.
Моя проблема - после выбора изображения 40 или выше, я получаю исключение нехватки памяти.
Может кто-нибудь помочь, пожалуйста?
chooseImageFromCamera:
try {
String folder_main = "FOSImages";
File f = new File(Environment.getExternalStorageDirectory(), folder_main);
if (!f.exists()) {
f.mkdirs();
}
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f1 = new File(android.os.Environment.getExternalStorageDirectory(),
"/" + folder_main + "/" + System.currentTimeMillis() + "_temp.jpg");
fileName = System.currentTimeMillis() + "_temp.jpg";
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f1));
startActivityForResult(intent, Constants.CAMERA_REQUEST_CODE);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
onCaptureImageResult:
try {
File f = new File(Environment.getExternalStorageDirectory() + "/" + "FOSImages");
for (File temp : f.listFiles()) {
if (temp.getName().equals(fileName)) {
f = temp;
origionalPaths.add(f);
if (imageType == 1) {
stickerBeforeFileList.add(f);
horizentalAdapter1.notifyDataSetChanged();
} else {
stickerAfterFileList.add(f);
horizentalAdapter2.notifyDataSetChanged();
}
}
}
} catch (Throwable throwable) {
throwable.printStackTrace();
}
выбрать из библиотеки:
try {
Intent intent = new Intent(
Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(
Intent.createChooser(intent, "Select File"),
Constants.GALLARY_REQUEST_CODE);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
onSelectFromGalleryResult:
try {
Uri selectedImageUri = data.getData();
File shopImageFile1 = new
File(Utilities.getRealPathFromURI(selectedImageUri, UberFormActivity.this));
if (imageType == 1) {
stickerBeforeFileList.add(carImageFile1);
horizentalAdapter1.notifyDataSetChanged();
} else {
stickerAfterFileList.add(carImageFile2);
horizentalAdapter2.notifyDataSetChanged();
}
} catch (Throwable throwable) {
throwable.printStackTrace();
}