У меня есть файл изображения, снятый камерой.
Путь
/storage/emulated/0/Android/data/com.xxxxxxxxxxxx.yyyyyyyyyyyyy/files/Pictures/yyyyyyyyyyyyyyy_overviewPicture_17417005982933606358.jpg
С File file = new File (pathName) я получаю действительный файл размером около 25 МБ :-)
Код
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathName,bmOptions);
int inSampleSize = Math.min(bmOptions.outWidth/App.PICTURE_WIDTH_MAX,bmOptions.outHeight/App.PICTURE_HEIGHT_MAX);
Я пытаюсь уменьшить значения x и y. Но возвращается только -1 для обоих значений. Любые идеи?
Уровень приложения - 23-28 с целевым 28.
Спасибо, верно. Вышеупомянутый размер файла был недоразумением. Я использовал File.getTotalSpace (), и это статический метод класса, не имеющий ничего общего с файлом. С file.length () я получаю 0. С File [] files ... я получаю имя изображения. Bizarr.
Размер файлов изображений был равен 0, поэтому их нельзя было закодировать. Я этого не ожидал. Я рекомендую if (new File (pathName) .length == 0) вернуть false или подобное. Спасибо за чтение / комментарий!
Размер файлов изображений был равен 0, поэтому их нельзя было закодировать. Я этого не ожидал. Рекомендую проверить с
if (new File(pathName).length() == 0) return false
или подобное перед попыткой декодирования. Спасибо за чтение / комментарий!
Ошибка декодирования:
outHeight will be set to -1 if there is an error trying to decode.developer.android.com/reference/android/graphics/…