プレビューを実装する

プレビュー ユースケースは、カメラ入力をストリーミングする SurfaceTexture を生成します。また、View を適切に表示するための切り抜き、サイズ変更、回転の追加情報を提供します。

画像プレビューは、カメラがアクティブになったときにこの SurfaceTexture にストリーミングされます。SurfaceTexture は、TextureView または GLSurfaceView に接続できます。

実装

次のサンプルは 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);
    

CameraView を使用する

CameraX には、Preview を使用して便利な View API を実装するための CameraView クラスが用意されています。View API は、画像データのサイズ変更、切り抜き、回転を自動的に行います。

このプレビューには、トーチモード、フォーカス、ズームのコントロールが実装されています。作成時に設定されるユースケースとは異なり、これらのコントロールはユースケースの動作中に動的に設定できます。

参考情報

CameraX について詳しくは、以下の参考情報をご確認ください。

コードラボ

  • CameraX のスタートガイド
  • コードサンプル

  • CameraX の公式サンプルアプリ