Если вы хотите, чтобы предварительный просмотр соответствовал ширине экрана, вы можете проверить установку типа масштаба от PreviewView
до FIT_CENTER
(или FIT_START
или FIT_END
, в зависимости от того, как вы хотите расположить макет предварительный просмотр на экране).
Вы можете установить программный тип масштаба:
previewView.setScaleType(PreviewView.ScaleType.FIT_CENTER);
Или в файле макета:
<androidx.camera.view.PreviewView
...
android:scaleType="fitCenter" />
FIT_*
соответствует ширине или высоте Предварительный просмотр для соответствия ширине или высоте контейнера PreviewView
(или того и другого, если контейнер и разрешение предварительного просмотра имеют одинаковое соотношение сторон), размер которого зависит от нескольких факторов, включая разрешение предварительного просмотра, естественное ориентация устройства и текущая ориентация дисплея. В результате этот подход может работать не во всех ситуациях, иногда предварительный просмотр будет заполнять ширину его контейнера, в других он будет заполнять высоту контейнера.
Если вас беспокоит аспект Отношение отображаемого предварительного просмотра, еще один способ решить вашу проблему - установить соотношение сторон PreviewView
(в вашем случае я предполагаю, что это будет 3x4), и установить PreviewView
для использования FIT_CENTER
типа масштаба.