Android 10: BitmapFactory.decodeFileDescriptor возвращает ноль - PullRequest
2 голосов
/ 21 апреля 2020

В эмуляторе, работающем Android 10, когда я использую decodeFileDescriptor в FireDescriptor, как показано ниже, растровое изображение создается нормально. Но когда я пытаюсь установить параметры и затем получить растровое изображение, используя этот объект параметров, объект параметров, кажется, не установлен правильно, и растровое изображение является нулевым. Пожалуйста, дайте мне знать, что я делаю неправильно. Ценю вашу помощь.

Bitmap test1c = BitmapFactory.decodeFileDescriptor(fdCompressed);
//This works
testImgView.setImageBitmap(test1c);

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fdCompressed, null, options);
//The line above sets outHeight and outWidth of options to -1

options.inJustDecodeBounds = false;

//This bitmap object is null
Bitmap test1e = BitmapFactory.decodeFileDescriptor(fdCompressed, null, options);
testImgView.setImageBitmap(test1e);

1 Ответ

2 голосов
/ 21 апреля 2020

Нашел причину, по которой он не работал. Тест, который я делал в начале, вызывал эту проблему.

Bitmap test1c = BitmapFactory.decodeFileDescriptor(fdCompressed);

Поскольку он выглядит так, как будто объект ParcelFileDescriptor можно использовать только один раз для генерации битовой карты. Когда я удалил эту строку и попробовал, она работала нормально. Мне понадобилось пару часов, чтобы понять это, надеюсь, это кому-нибудь поможет.

...