CameraSourcePreview不会填满整个屏幕高度

时间:2018-03-04 19:44:33

标签: android android-layout

我有(相机光源预览)不覆盖整个屏幕,里面(相机源预览)有(图像视图)似乎隐藏在(相机源预览)后面,我的观点,我需要的(相机来源预览) )覆盖整个屏幕,以及前面的图像视图。

MainLayout

    <com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview
            android:id="@+id/preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.google.android.gms.samples.vision.face.facetracker.ui.camera.GraphicOverlay
                android:id="@+id/faceOverlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

        </com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview>

        <ImageView
            android:id="@+id/btn_change_camera"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="end"
            android:layout_marginEnd="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:clickable="true"
            android:contentDescription="@string/img_desc_btn_change_camera"
            android:focusable="true"
            android:scaleType="fitXY"
            android:src="@drawable/ic_change_camera" />

        <ImageView
            android:id="@+id/btn_capture"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_marginBottom="20dp"
            android:clickable="true"
            android:contentDescription="@string/img_desc_btn_capture"
            android:focusable="true"
            android:scaleType="fitXY"
            android:src="@drawable/ic_capture" />

Screenshot

1 个答案:

答案 0 :(得分:1)

要使CameraSourcePreview覆盖整个屏幕,您必须在CameraSourcePreview.java文件中更改一些代码,例如

在您的onLayout方法中,

// Computes height and width for potentially doing fit width.
    int childWidth = layoutWidth;
    //int childHeight = (int)(((float) layoutWidth / (float) width) * height);
    int childHeight = layoutHeight;

然后在您的barcodeCaptureActivity中,找到createCameraSource方法,并注释掉setRequestedPreviewSize,如下所示。

    CameraSource.Builder builder = new CameraSource.Builder(getApplicationContext(), barcodeDetector)
            .setFacing(CameraSource.CAMERA_FACING_BACK)
            //.setRequestedPreviewSize(1600, 1024)
            .setRequestedFps(15.0f);

现在,您可以全屏查看CameraSourcePreview。