Камера2 Камера: Предварительный просмотр видоискателя растянутAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Камера2 Камера: Предварительный просмотр видоискателя растянут

Сообщение Anonymous »

Я создаю камеру в своем приложении с помощью camera2 и хочу использовать CameraViewfinder, поскольку, насколько я понимаю, он должен корректировать ориентацию и соотношение сторон. Однако когда я устанавливаю разрешение и запрашиваю поверхность, предварительный просмотр растягивается по вертикали. Разрешение, которое я использую, — 3072x4080 (3:4), и это соотношение сторон не соответствует видоискателю, поэтому оно выглядит неправильно. Однако я думал, что CameraViewfinder должен исправить это автоматически? Я использую тип масштаба fillCenter, и в документации к нему указано следующее:

Это может привести к обрезке видоискателя, если камера Соотношение сторон видоискателя не соответствует соотношению сторон контейнера CameraViewfinder.

Однако я не вижу каких-либо обрезков для исправления соотношения сторон. Вот как я запрашиваю поверхность предварительного просмотра:

Код: Выделить всё

surfaceRequest = ViewfinderSurfaceRequest.Builder(
resolution = resolution // Size(3072, 4080)
).build()
surfaceRequest?.let { request ->
val surfaceListenableFuture: ListenableFuture =
binding.viewFinder.requestSurfaceAsync(request)

Futures.addCallback(
surfaceListenableFuture, object : FutureCallback {
override fun onSuccess(result: Surface?) {
// use surface
}

},
ContextCompat.getMainExecutor(requireContext())
)
}
У меня видоискатель заключен в FrameLayout и определен в моем XML как таковой: Сравните мою камеру и камеру Google.
Я попытался получить соотношение сторон видоискателя, а затем найти разрешение, которое наиболее точно соответствует это, но предварительный просмотр все равно искажается. Что мне нужно сделать, чтобы исправить соотношение сторон в предварительном просмотре?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -stretched
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»