La Vista previa para desarrolladores de Android 11 ya está disponible. Pruébala y comparte tus comentarios.

Cómo implementar una vista previa

El caso práctico de vista previa produce un SurfaceTexture que transmite la entrada de la cámara. También proporciona información adicional para una View, que permite recortar, ajustar o rotar la imagen para su correcta visualización.

La vista previa de la imagen se transmite a este SurfaceTexture cuando la cámara se activa. SurfaceTexture se puede conectar a TextureView o GLSurfaceView.

Implementación

En el siguiente ejemplo, se muestra cómo usar PreviewOutput:

Kotlin

    val previewConfig = PreviewConfig.Builder().build()
    val preview = Preview(previewConfig)

    preview.setOnPreviewOutputUpdateListener {
        previewOutput: Preview.PreviewOutput? ->
            // Your code here. For example, use previewOutput?.getSurfaceTexture()
            // and post to a GL renderer.
    }

    CameraX.bindToLifecycle(this as LifecycleOwner, preview)
    

Java

    PreviewConfig config = new PreviewConfig.Builder().build();
    Preview preview = new Preview(config);

    preview.setOnPreviewOutputUpdateListener(
        new Preview.OnPreviewOutputUpdateListener() {
            @Override
            public void onUpdated(Preview.PreviewOutput previewOutput) {
                // Your code here. For example, use previewOutput.getSurfaceTexture()
                // and post to a GL renderer.
            };
    });

    CameraX.bindToLifecycle((LifecycleOwner) this, preview);
    

Cómo usar CameraView

CameraX proporciona una clase CameraView que usa Preview para implementar una API de visualización más conveniente. Esta API ajusta, recorta y rota los datos de la imagen automáticamente.

El modo de linterna, los controles de enfoque y zoom se implementan en esta vista previa. A diferencia de los casos prácticos, donde la configuración se establece en la creación, puedes configurar estos controles dinámicamente, mientras el práctico está en funcionamiento.

Recursos adicionales

Para obtener más información acerca de CameraX, consulta los siguientes recursos adicionales.

Codelab

  • Cómo comenzar a usar CameraX
  • Ejemplo de código

  • App de ejemplo de CameraX oficial