Class ScanbotCameraXView

  • All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback , android.view.KeyEvent.Callback , android.view.ViewManager , android.view.ViewParent , android.view.accessibility.AccessibilityEventSource , io.scanbot.sdk.ui.camera.IScanbotCameraView , io.scanbot.sdk.ui.camera.UiZoomDelegate , io.scanbot.sdk.ui.camera.util.FinderViewAttributeHandler

    
    public final class ScanbotCameraXView
    extends FrameLayout implements IScanbotCameraView, UiZoomDelegate, FinderViewAttributeHandler
                        

    Wrapper view for CameraX.

    • Constructor Detail

      • ScanbotCameraXView

        ScanbotCameraXView(Context context)
    • Method Detail

      • getDelayAfterFocusCompleteMs

         Long getDelayAfterFocusCompleteMs()

        Delay that camera will took before snap on auto focus complete called from camera core in ms. For some devices this callback could call even before real auto focus completed, so we need to take some delay before snapping. Usually you can set 500ms. By default it is set to 20ms.

      • setDelayAfterFocusCompleteMs

         Unit setDelayAfterFocusCompleteMs(Long delayAfterFocusCompleteMs)

        Delay that camera will took before snap on auto focus complete called from camera core in ms. For some devices this callback could call even before real auto focus completed, so we need to take some delay before snapping. Usually you can set 500ms. By default it is set to 20ms.

      • takePicture

         Unit takePicture(Boolean acquireFocus)

        Takes picture.

        This is asynchronous process, so results are reported via PictureCallback added in addPictureCallback. If snapping process is still going all subsequent calls to takePicture are ignored.

        After picture is taken, camera preview is stopped. If you wish it continue, use startPreview If view is paused, this call is ignored.

        Parameters:
        acquireFocus - true to perform auto-focus before shooting.
      • takePicture

         Unit takePicture(Boolean acquireFocus, Boolean isCapturedAutomatically)

        Takes picture.

        This is asynchronous process, so results are reported via PictureCallback added in addPictureCallback. If snapping process is still going all subsequent calls to takePicture are ignored.

        After picture is taken, camera preview is stopped. If you wish it continue, use startPreview If view is paused, this call is ignored.

        Parameters:
        acquireFocus - true to perform auto-focus before shooting.
        isCapturedAutomatically - allows to define if the picture was taken automatically by any of AutoSnappingController.
      • addPictureCallback

         Unit addPictureCallback(BasePictureCallback pictureCallback)

        Adds callback which will be notified when picture will be taken. Callbacks are invoked on a worker thread, so you can safely perform "heavy" operations here.

        Parameters:
        pictureCallback - callback to register.
      • addCameraStateCallback

         Unit addCameraStateCallback(CameraStateCallback cameraStateCallback)

        Adds callback which will be notified about camera state changes. Callbacks are invoked on a main thread.

        Parameters:
        cameraStateCallback - callback to register.
      • setCaptureCallback

         Unit setCaptureCallback(CaptureCallback captureCallback)

        Sets the callback which will be notified about the moment of actual image capture.

        Parameters:
        captureCallback - callback to register
      • addTakePictureCallback

         Unit addTakePictureCallback(CameraTakePictureCallback cameraTakePictureCallback)

        Adds callback which will be notified about take picture operation process. Callbacks are invoked on a main thread.

        Parameters:
        cameraTakePictureCallback - callback to register.
      • setAutoFocusOnTouch

         Unit setAutoFocusOnTouch(Boolean autoFocusOnTouch)
        Parameters:
        autoFocusOnTouch - if true - auto focus on touch will be enabled, false - otherwise.
      • autoFocus

         Unit autoFocus()

        Performs auto-focus.

        If there is no auto-focus capabilities on this device, does nothing.

        If view is paused, this call is ignored.

      • continuousFocus

         Unit continuousFocus()

        Cancels auto-focus and performs continuous-focus. Should be executed from the main thread and when camera is opened

        If there is no continuous-focus capabilities on this device, does auto-focus.

        If view is paused, this call is ignored.

      • useFlash

         Unit useFlash(Boolean useFlash)

        Enables or disables camera flash.

        If there is no flash on this device, does nothing.

        If view is paused, this call is ignored.

        Parameters:
        useFlash - true to enable flash.
      • lockToPortrait

         Unit lockToPortrait(Boolean lockPicture)

        Locks camera in portrait mode

        Parameters:
        lockPicture - if true - taken picture will ba locked to the portrait orientation, false - picture orientation depends on the device sensor.
      • lockToLandscape

         Unit lockToLandscape(Boolean lockPicture)

        Locks camera in landscape mode

        Parameters:
        lockPicture - if true - taken picture will ba locked to the landscape orientation, false - picture orientation depends on the device sensor.
      • usePinchToZoom

         Unit usePinchToZoom(Boolean usePinchToZoom)

        Enables/disables Pinch-to-Zoom camera functionality

        Parameters:
        usePinchToZoom - true if Pinch-to-Zoom should be enabled, false - otherwise
      • isFlashEnabled

         Boolean isFlashEnabled()

        Returns the current state of the flashlight Should be executed from the main thread and when camera is opened

      • startPreview

         Unit startPreview()

        Starts/resumes camera preview stream. Usually used after picture was taken. Note, the preview is started by default only once after the view is attached, so it's required to call it if the preview was stopped and the view was not reattached.

      • freezePreview

         final Unit freezePreview()

        Stops camera preview stream but leaving detection enabled. Internal Use Only!

      • unfreezePreview

         final Unit unfreezePreview()

        Resume camera preview stream after the freeze. Internal Use Only!

      • lockMinFocusDistance

         Unit lockMinFocusDistance(Boolean lock)

        Locks the min supported focus distance and disables continuous focus

        Parameters:
        lock - if true minimal available focus distance will be locked, false - otherwise Default is false.
      • setPhysicalZoomRange

         Unit setPhysicalZoomRange(ZoomRange zoomRange)

        Set custom zoom range. Default value is ZoomRange(0.5f, 100f).

        Parameters:
        zoomRange - Target zoom range
      • setPhysicalZoom

         Unit setPhysicalZoom(Float zoom)

        Allows to set camera physical zoom value, if the value out of range of real camera min and max values it chooses min or max value. Example: camera physical zoom range 1f..5f if we set 6f it will set 5f. Default value is 1f.

        Parameters:
        zoom - Target zoom level
      • setPictureSize

         final Unit setPictureSize(Size pictureSize)

        Set camera picture size. Make sure to set the size with the correct orientation.

      • setCameraFrameSize

         final Unit setCameraFrameSize(Size frameSize)

        Set camera preview and analyzer frame size. Make sure to set the size with the correct orientation.

      • setPreviewFrameSize

         final Unit setPreviewFrameSize(Size frameSize)

        Set camera preview frame size. Make sure to set the size with the correct orientation.

      • setAnalyzerFrameSize

         final Unit setAnalyzerFrameSize(Size frameSize)

        Set camera analyzer frame size. Make sure to set the size with the correct orientation.

      • setForceMaxSnappingSize

         Unit setForceMaxSnappingSize(Boolean enabled)

        Set whether camera should force maximum possible size of snapped picture or use maximum size that available with the same aspect ratio as preview. By default set to false.

      • setForceMaxSnappingQuality

         Unit setForceMaxSnappingQuality(Boolean enabled)

        Set whether camera should force maximum possible quality of snapped picture. As a result snapping speed could be significantly slower and result image could be bigger. By default set to false This parameter works only with ScanbotCameraXView enabled

      • setSnappingAutoAdjustment

         Unit setSnappingAutoAdjustment(Boolean enabled)

        Set whether camera should automatically adjusts the final image with the surrounding scenery. For example, the vendor library implementation might do low-light detection and switch to low-light mode or HDR to take the picture. Alternatively, the face retouch mode could be automatically applied when taking a portrait image. This delegates modes to the vendor library implementation to decide.

      • setShutterSound

         Unit setShutterSound(Boolean value)

        Set camera shutter sound state. true if system sound should be played on the take picture event, false - otherwise. By default, the camera plays the system-defined camera shutter sound when takePicture() is called.

        Note that devices may not always allow disabling the camera shutter sound. If the shutter sound state cannot be set to the desired value, this method will be ignored.

      • setUiZoomLevel

         Unit setUiZoomLevel(Float zoomLevel)

        Passes the zoom value to the dependent view

        Parameters:
        zoomLevel - the new scale of the UI