LINUX.ORG.RU

Camera2 aspect ratio

 ,


0

1

Может кто-нибудь подскажет, что это за баг при использовании Camera2 в Android 5.x? MinSdkVersion я указал = 21.

вертикальная ориентация экрана

горизонтальная ориентация

Кто-нибудь сталкивался с таким?

Я пробовал принудительно устанавливать размеры SurfaceView в методах surfaceCreated, surfaceChanged или onResume(), но исправить ratio так и не смог.

        preview.getLayoutParams().height = h0;
        preview.getLayoutParams().width = w0;

В Android 4.4-5.1 использую Camera1, там всё нормально.

Это какой-то баг?

В инете накопал кучу ссылок, но не могу разобраться:
1) https://stackoverflow.com/questions/27374049/android-get-device-screen-height...
2) https://stackoverflow.com/questions/31362202/android-camera2-output-sizes
3) https://stackoverflow.com/questions/29431021/capturing-43-camera-picture-via-...
4) https://stackoverflow.com/questions/39044494/get-full-screen-preview-with-and...
5) https://stackoverflow.com/questions/45307191/how-to-set-android-camera2-previ...
6) https://stackoverflow.com/questions/37434494/android-camera-2-preview-size-an...
7) https://stackoverflow.com/questions/41221284/how-to-change-aspect-ratio-of-ca...

Я так понял, надо наследовать SurfaceView и переопределять onMeasure()?

В общем, простой выход нашёл.

Есть готовый код CameraView от Google. Там все вопросы решены. Посмотрел - работает практически без косяков.

https://github.com/google/cameraview/

Сделан динамический выбор Camera API, работает с minSdkVersion = 9.

Mirage1_ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.