CameraXDslUtils

Added in 1.7.0-rc01

public final class CameraXDslUtils


Summary

Public methods

static final @NonNull ImageAnalysis

Creates an ImageAnalysis using a Kotlin DSL block.

static final @NonNull ImageCapture

Creates an ImageCapture using a Kotlin DSL block.

static final @NonNull Preview
preview(@NonNull Function1<@NonNull PreviewScope, Unit> block)

Creates a Preview using a Kotlin DSL block.

Public methods

imageAnalysis

public static final @NonNull ImageAnalysis imageAnalysis(@NonNull Function1<@NonNull ImageAnalysisScope, Unit> block)

Creates an ImageAnalysis using a Kotlin DSL block.

import androidx.camera.core.ImageAnalysis
import androidx.camera.core.ImageCapture
import androidx.camera.core.imageAnalysis
import androidx.camera.core.imageCapture
import androidx.camera.core.preview
import androidx.camera.core.resolutionselector.ResolutionSelector

// 1. Using the new Kotlin DSL to configure UseCases in a clean and idiomatic way
val previewUseCase = preview {
    targetName = "preview_dsl"
    targetRotation = Surface.ROTATION_90
    resolutionSelector = ResolutionSelector.Builder().build()
    isPreviewStabilizationEnabled = true
    targetFrameRate = Range(30, 30)
}

val imageCaptureUseCase = imageCapture {
    targetName = "capture_dsl"
    captureMode = ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY
    flashMode = ImageCapture.FLASH_MODE_AUTO
    jpegQuality = 95
}

val imageAnalysisUseCase = imageAnalysis {
    targetName = "analysis_dsl"
    backpressureStrategy = ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST
    imageQueueDepth = 5
}
Parameters
@NonNull Function1<@NonNull ImageAnalysisScope, Unit> block

A receiver lambda on ImageAnalysisScope to configure the image analysis.

imageCapture

public static final @NonNull ImageCapture imageCapture(@NonNull Function1<@NonNull ImageCaptureScope, Unit> block)

Creates an ImageCapture using a Kotlin DSL block.

import androidx.camera.core.ImageAnalysis
import androidx.camera.core.ImageCapture
import androidx.camera.core.imageAnalysis
import androidx.camera.core.imageCapture
import androidx.camera.core.preview
import androidx.camera.core.resolutionselector.ResolutionSelector

// 1. Using the new Kotlin DSL to configure UseCases in a clean and idiomatic way
val previewUseCase = preview {
    targetName = "preview_dsl"
    targetRotation = Surface.ROTATION_90
    resolutionSelector = ResolutionSelector.Builder().build()
    isPreviewStabilizationEnabled = true
    targetFrameRate = Range(30, 30)
}

val imageCaptureUseCase = imageCapture {
    targetName = "capture_dsl"
    captureMode = ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY
    flashMode = ImageCapture.FLASH_MODE_AUTO
    jpegQuality = 95
}

val imageAnalysisUseCase = imageAnalysis {
    targetName = "analysis_dsl"
    backpressureStrategy = ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST
    imageQueueDepth = 5
}
Parameters
@NonNull Function1<@NonNull ImageCaptureScope, Unit> block

A receiver lambda on ImageCaptureScope to configure the image capture.

public static final @NonNull Preview preview(@NonNull Function1<@NonNull PreviewScope, Unit> block)

Creates a Preview using a Kotlin DSL block.

import androidx.camera.core.ImageAnalysis
import androidx.camera.core.ImageCapture
import androidx.camera.core.imageAnalysis
import androidx.camera.core.imageCapture
import androidx.camera.core.preview
import androidx.camera.core.resolutionselector.ResolutionSelector

// 1. Using the new Kotlin DSL to configure UseCases in a clean and idiomatic way
val previewUseCase = preview {
    targetName = "preview_dsl"
    targetRotation = Surface.ROTATION_90
    resolutionSelector = ResolutionSelector.Builder().build()
    isPreviewStabilizationEnabled = true
    targetFrameRate = Range(30, 30)
}

val imageCaptureUseCase = imageCapture {
    targetName = "capture_dsl"
    captureMode = ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY
    flashMode = ImageCapture.FLASH_MODE_AUTO
    jpegQuality = 95
}

val imageAnalysisUseCase = imageAnalysis {
    targetName = "analysis_dsl"
    backpressureStrategy = ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST
    imageQueueDepth = 5
}
Parameters
@NonNull Function1<@NonNull PreviewScope, Unit> block

A receiver lambda on PreviewScope to configure the preview.