5

I have a problem with a preview using CameraX sample app. Quality of the preinstalled camera app's preview is better then CameraX sample's preview, but photos quality is ok. In the sample project touch to focus is implemented too, so it isn't problem, I think. I'm using this code to setup a preview use case. What is maybe wrong?

private fun buildPreviewUseCase(): Preview {
    val display = viewFinder.display
    val metrics = DisplayMetrics().also { display.getMetrics(it) }
    val preview = Preview.Builder()
            .setTargetRotation(display.rotation)
            .setTargetResolution(Size(metrics.widthPixels, metrics.heightPixels))
            .build()
            .apply {
                previewSurfaceProvider = viewFinder.previewSurfaceProvider
            }
    preview.previewSurfaceProvider = viewFinder.previewSurfaceProvider
    return preview
}

CameraX sample's preview

enter image description here

preinstalled camera app's preview

enter image description here

Askar Syzdykov
  • 399
  • 3
  • 15

1 Answers1

0

i have same issue, but after compile and run camerax example app

https://github.com/android/camera-samples/tree/main/CameraXBasic

seems there quality is ok. I checked difference, and...

somehow, if imageCapture UseCase is not set, quality is bad.. so, try to add

val imageCapture = ImageCapture.Builder()
    .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
    .setTargetAspectRatio(screenAspectRatio)
    .setTargetRotation(rotation)
    .build()

and set it into camera

camera = cameraProvider.bindToLifecycle(
        this, cameraSelector, preview, imageCapture, imageAnalyzer
)
John
  • 1,447
  • 15
  • 16