The Android Developer Challenge is back! Submit your idea before December 2.

プレビューを実装する

プレビュー ユースケースは、カメラ入力をストリーミングする 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 の公式サンプルアプリ