Menerapkan pratinjau

Kasus penggunaan pratinjau menghasilkan SurfaceTexture yang memproses input kamera. Kasus penggunaan ini juga menyediakan informasi tambahan untuk View yang meng-crop, menskala, atau merotasi gambar sehingga diperoleh tampilan yang tepat.

Pratinjau gambar diproses ke SurfaceTexture ini saat kamera mulai aktif. SurfaceTexture dapat dihubungkan ke TextureView atau GLSurfaceView.

Penerapan

Contoh berikut menunjukkan cara menggunakan 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);
    

Menggunakan CameraView

CameraX menyediakan class CameraView yang menggunakan Preview untuk menerapkan View API yang lebih praktis. View API otomatis menskala, meng-crop, dan merotasi data gambar.

Mode senter, fokus, dan kontrol zoom diimplementasikan dalam pratinjau ini. Tidak seperti kasus penggunaan, di mana konfigurasi ditetapkan pada saat pembuatan, Anda dapat menetapkan kontrol-kontrol ini secara dinamis, saat kasus penggunaan sedang berjalan.

Referensi lainnya

Untuk mempelajari CameraX lebih lanjut, lihat referensi tambahan berikut.

Codelab

  • Memulai CameraX
  • Contoh kode

  • Contoh aplikasi CameraX resmi