Я пытаюсь уменьшить свои изображения до меньшего размера. Я загружал их, когда они были в виде изображения, и я начал получать исключение «размер растрового изображения превышает бюджет ВМ».С другой стороны, если я получу миниатюры вместо реальных изображений и покажу их, все пройдет гладко.Но мне нужны URI реальных изображений для последующего использования, которые я не могу получить, если сразу загружаю миниатюры.
Осмотревшись, я нашел способ, но он не работает.
Код:
Uri uri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, name);
uriList.add(uri.getPath());
File image = new File(uri.getPath());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap actualBitmap = BitmapFactory.decodeFile(image.getPath(), options);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(actualBitmap, image_width, image_height, false);
iv.setImageBitmap(scaledBitmap);
Часть, в которой я получаю actualBitmap, возвращает значение NULL, поэтому представление изображения пустое.Если я напечатаю uri.getpath()
, то получится:
/external/images/media//sdcard/dcim/Camera/imagename.jpg
Мой вопрос: правильный ли это подход?Если да, то, что я делаю неправильно, и если нет, кто-нибудь, пожалуйста, укажите мне правильное направление.