I am trying to get a big size image programmatically , but app is crashing. Here is what I'm doing:
public static Bitmap getImageFromResult(Context context, int resultCode, Intent imageReturnedIntent) {
Bitmap bitmap = null;
File imageFile = getTempFile(context);
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage;
boolean isCamera = (imageReturnedIntent == null || imageReturnedIntent.getData() == null || imageReturnedIntent.getData().toString().contains(imageFile.toString()));
if (isCamera) {
// From Camera
selectedImage = Uri.fromFile(imageFile);
} else {
// From Storage
selectedImage = imageReturnedIntent.getData();
}
//bitmap = getResizedImage(context, selectedImage);
bitmap = getResizedImage(context, selectedImage);
}
return bitmap;
}
And the resize
method` :
//*********** Resize to avoid using too much Memory loading Big Images (2560*1920) ********//
private static Bitmap getResizedImage(Context context, Uri selectedImage) {
Bitmap resizedBitmap = null;
int[] sampleSizes = new int[]{8,7,6,5, 4, 3, 2, 1};
int i = 0;
do {
resizedBitmap = decodeBitmap(context, selectedImage, sampleSizes[i]);
i++;
} while (resizedBitmap.getWidth() < minWidthQuality && i < sampleSizes.length);
return resizedBitmap;
}