Мне нужно загрузить изображение с уменьшенным разрешением. Как мне это сделать?
Надоел следующий код:
public Bitmap decodeSampledBitmapFromUri(@NonNull Uri Uri, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
try {
InputStream is = getContentResolver().openInputStream(Uri);
BitmapFactory.decodeStream(is, null, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // I can read width and height from options
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeStream(is, null, options);
} catch (Exception ignored)
{
}
return null;
}
И я даже вижу ширину и высоту загруженного изображения. Но BitmapFactory.decodeStream
возвращает null
, когда я превратил inJustDecodeBounds
в false. Что не так?
Изображение выбрано пользователем из галереи. Все разрешения предоставлены.