Поддерживать пропорции изображения с инвертированными размерами Android - PullRequest
2 голосов
/ 02 мая 2020

Я сталкиваюсь со странной ситуацией, касающейся размера изображения и соотношения сторон, но, возможно, это будет очевидно для некоторых, я надеюсь.

У меня есть RecyclerView, в который я вставляю изображение (и видео), ширина изображения принудительная (maxWidth / 2).

Я хочу сохранить исходное соотношение сторон и установить высоту изображения в соответствии со значением ширины. Затем мне пришлось извлечь исходный размер изображения из личной галереи пользователя:

BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeFile(file, options);
            fileHeight = options.outHeight;
            fileWidth = options.outWidth;

Я рассчитал коэффициент между шириной и высотой, но я обнаружил, что он не может работать, когда размеры изображения инвертированы. Я провел несколько тестов на нескольких камерах, и некоторые из них снимали, например, в разрешении 720x1280 и другом разрешении 1280x720, тогда как изображение точно такое же.

Затем я попытался инвертировать коэффициент вычисления в соответствии с начальными размерами, но он не работает из-за формата изображения (ландшафт ...). Это то же самое с видео.

Как этого добиться?

...