размер камеры2 - PullRequest
       23

размер камеры2

0 голосов
/ 08 сентября 2018

Я занимаюсь разработкой приложения для Android, которое должно показывать камеру внутри LinearLayout.Я создаю фрагмент с объектом SurfaceView и Camera2.После большой работы я мог показать камеру поверх вида, но у меня проблемы с размером.

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

Поверхность с размером (w = 516, h = 828) и форматом 0x4 недопустим, размер не указан в допустимом наборе: [1440x1080, 1280x720, 960x720, 880x720, 960x540, 720x540, 800x480, 720x480, 640x480, 528x432, 352x288, 320x240, 176x144]

Если я определю некоторые размеры в сообщении, я не смогу получить камеру, но смогу получить камерувся моя поверхность только часть, а остальное черное.

Я не могу понять, что я делаю неправильно.

Это мой макет

 <LinearLayout
        android:id="@+id/contenedor1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </LinearLayout>

Этокак я могу получить действительные размеры устройства.Я беру сначала в списке, но я пробовал все доступные размеры

val map = cameraCharacteristics!!.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)    

                medida= map.getOutputSizes(SurfaceHolder::class.java)[0]
                w=medida.width
                h=medida.height

Затем я устанавливаю размер с помощью

override fun surfaceCreated(p0: SurfaceHolder?) {
        p0!!.setFixedSize(w,h)

        Superficie = p0!!.surface
    }

И это изображение, которое я получаю enter image description here

...