zxing-android-embedded icon indicating copy to clipboard operation
zxing-android-embedded copied to clipboard

Ho to set Zoom in Camera using Zxing

Open vtangade opened this issue 1 year ago • 4 comments

I want to set Zoom in Camera but not able achieve this using Zxing, please suggest any solution.

I'm currently using following version :

implementation 'com.journeyapps:zxing-android-embedded:4.3.0'

vtangade avatar Nov 04 '22 13:11 vtangade

I also need this information

massimilianochiodi avatar Nov 07 '22 07:11 massimilianochiodi

Can someone answer?

yersx avatar Mar 20 '23 10:03 yersx

If you are using something like BarcodeView, extend it and implement CameraPreview.StateListener, CameraParametersCallback. Then in the constructors, after calling the super, call addStateListener(this)

In the override for previewStarted(), call changeCameraParameters(this). That will pass the callback down to the CameraManager which will then get called to set the desired parameters

public Camera.Parameters changeCameraParameters(Camera.Parameters params) { params.setZoom(params.getMaxZoom() / 2) return params; }

setZoom() uses an index into the available zooms list which you can get from Camera.Parameters if you want to see what values you are dealing with. A Galaxy S22 goes up to 8x, so getMaxZoom() / 2 is about 4x

(Note: BarcodeView doesn't need to implement CameraPreview.StateListener since it has it's own previewStarted function that you can override, but other components you are extending may not have that helper)

douglas-fp avatar Jun 13 '23 04:06 douglas-fp

Kotlin example:

        val camera = barcodeView.barcodeView.cameraInstance ?: return
        camera.changeCameraParameters { params: Camera.Parameters ->
            if (params.isZoomSupported) {
                val maxZoom = params.maxZoom
                val newZoomLevel = Math.min(maxZoom, zoomLevel.toInt())
                params.zoom = newZoomLevel
            }
            params
        }

where zoomLevel is a Float parameter.

sarkiroka avatar Aug 26 '23 05:08 sarkiroka