Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Implementar uma visualização

O caso de uso de visualização produz uma SurfaceTexture, que transmite a entrada da câmera. Ele também fornece outras informações para cortar, redimensionar ou girar uma View, a fim de que a exibição fique adequada.

A visualização da imagem é transmitida para essa SurfaceTexture quando a câmera é ativada. A SurfaceTexture pode ser conectada a uma TextureView ou a uma GLSurfaceView.

Implementação

A amostra a seguir mostra como 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);
    

Usar a CameraView

O CameraX fornece uma classe CameraView que usa uma Preview para implementar uma API View mais conveniente. Essa API dimensiona, corta e gira os dados da imagem automaticamente.

O modo de tocha, o foco e os controles de zoom são implementados na visualização.

Outros recursos

Para saber mais sobre o CameraX, consulte os seguintes recursos adicionais.

Codelabs

  • Introdução ao CameraX
  • Adicionar um Fragmento CameraView ao seu app
  • Amostra de código

  • App de amostra oficial do CameraX