Package 

Class CameraScan

  • All Implemented Interfaces:
    com.king.camera.scan.ICamera , com.king.camera.scan.ICameraControl

    
    public abstract class CameraScan<T>
     implements ICamera, ICameraControl
                        

    相机扫描基类定义;内置的默认实现见:BaseCameraScan

    快速实现扫描识别主要有以下几种方式:

    1、通过继承 BaseCameraScanActivity或者BaseCameraScanFragment或其子类,可快速实现扫描识别。 (适用于大多数场景,自定义布局时需覆写getLayoutId方法)

    2、在你项目的Activity或者Fragment中实例化一个BaseCameraScan。(适用于想在扫描界面写交互逻辑,又因为项目 架构或其它原因,无法直接或间接继承BaseCameraScanActivityBaseCameraScanFragment时使用)

    3、继承CameraScan自己实现一个,可参照默认实现类BaseCameraScan,其他步骤同方式2。(高级用法,谨慎使用)

    • Method Summary

      Modifier and Type Method Description
      CameraScan<T> setNeedTouchZoom(boolean needTouchZoom) 设置是否需要支持触摸缩放
      Bundle getExtras() 获取扩展参数:当CameraScan的默认实现不满足你的需求时,你可以通过自定义实现一个CameraScan;然后通过此方法获取扩展参数,进行扩展参数的传递;需使用时直接在实现类中获取 mExtras即可。
      abstract CameraScan<T> setCameraConfig(CameraConfig cameraConfig) 设置相机配置,请在startCamera之前调用
      abstract CameraScan<T> setAnalyzeImage(boolean analyze) 设置是否分析图像,默认为:true;通过此方法可以动态控制是否分析图像;在连续扫描识别时,可能会用到。如:当分析图像成功一次之后,如需继续连扫,可以在结果回调函数中等处理了自己的业务后,继续调用此方法并设置为true,就可以继续扫描分析图像了。
      abstract CameraScan<T> setAutoStopAnalyze(boolean autoStopAnalyze) 设置是否自动停止分析图像;默认为:true;大多数情况下,单次扫描的场景应用较多;很容易忘记主动调用 setAnalyzeImage 来停止分析。如果设置为:true;即:启用了自动停止分析图像:当分析图像成功一次之后;那么设置的分析图像会自动停止;如果此时需要继续分析图像,可以在结果回调里面调用 setAnalyzeImage 来控制是否继续分析图像。如果设置为:false;即:禁用了自动停止分析图像:当分析图像成功一次之后;不会有任何变化;会继续分析图像。
      abstract CameraScan<T> setAnalyzer(Analyzer<T> analyzer) 设置分析器,如果内置的一些分析器不满足您的需求,你也可以自定义Analyzer,自定义时,切记需在startCamera之前调用才有效。
      abstract CameraScan<T> setVibrate(boolean vibrate) 设置是否振动
      abstract CameraScan<T> setPlayBeep(boolean playBeep) 设置是否播放提示音
      abstract CameraScan<T> setOnScanResultCallback(CameraScan.OnScanResultCallback<T> callback) 设置扫描结果回调
      abstract CameraScan<T> bindFlashlightView(@Nullable() View v) 绑定手电筒,绑定后可根据光照传感器,动态显示或隐藏手电筒。
      abstract CameraScan<T> setDarkLightLux(float lightLux) 设置光照强度足够暗的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效
      abstract CameraScan<T> setBrightLightLux(float lightLux) 设置光照强度足够明亮的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效
      static String parseScanResult(Intent data) 解析扫描结果
      • Methods inherited from class com.king.camera.scan.ICamera

        getCamera, release, startCamera, stopCamera
      • Methods inherited from class com.king.camera.scan.ICameraControl

        enableTorch, hasFlashUnit, isTorchEnabled, lineZoomIn, lineZoomOut, lineZoomTo, zoomIn, zoomOut, zoomTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • setNeedTouchZoom

         CameraScan<T> setNeedTouchZoom(boolean needTouchZoom)

        设置是否需要支持触摸缩放

        Parameters:
        needTouchZoom - 是否需要支持触摸缩放
      • getExtras

        @NonNull() Bundle getExtras()

        获取扩展参数:当CameraScan的默认实现不满足你的需求时,你可以通过自定义实现一个CameraScan;然后通过此方法获取扩展参数,进行扩展参数的传递;需使用时直接在实现类中获取 mExtras即可。

      • setAnalyzeImage

         abstract CameraScan<T> setAnalyzeImage(boolean analyze)

        设置是否分析图像,默认为:true;通过此方法可以动态控制是否分析图像;在连续扫描识别时,可能会用到。

        如:当分析图像成功一次之后,如需继续连扫,可以在结果回调函数中等处理了自己的业务后,继续调用此方法并设置为true,就可以继续扫描分析图像了。

        Parameters:
        analyze - 是否分析图像
      • setAutoStopAnalyze

         abstract CameraScan<T> setAutoStopAnalyze(boolean autoStopAnalyze)

        设置是否自动停止分析图像;默认为:true;

        大多数情况下,单次扫描的场景应用较多;很容易忘记主动调用 setAnalyzeImage 来停止分析。

        如果设置为:true;即:启用了自动停止分析图像:当分析图像成功一次之后;那么设置的分析图像会自动停止;如果此时需要继续分析图像,可以在结果回调里面调用 setAnalyzeImage 来控制是否继续分析图像。

        如果设置为:false;即:禁用了自动停止分析图像:当分析图像成功一次之后;不会有任何变化;会继续分析图像。

        Parameters:
        autoStopAnalyze - 是否自动停止分析
      • setAnalyzer

         abstract CameraScan<T> setAnalyzer(Analyzer<T> analyzer)

        设置分析器,如果内置的一些分析器不满足您的需求,你也可以自定义Analyzer,自定义时,切记需在startCamera之前调用才有效。

        Parameters:
        analyzer - 分析器
      • setVibrate

         abstract CameraScan<T> setVibrate(boolean vibrate)

        设置是否振动

        Parameters:
        vibrate - 是否振动
      • setPlayBeep

         abstract CameraScan<T> setPlayBeep(boolean playBeep)

        设置是否播放提示音

        Parameters:
        playBeep - 是否播放蜂鸣提示音
      • bindFlashlightView

         abstract CameraScan<T> bindFlashlightView(@Nullable() View v)

        绑定手电筒,绑定后可根据光照传感器,动态显示或隐藏手电筒。

        Parameters:
        v - 手电筒视图
      • setDarkLightLux

         abstract CameraScan<T> setDarkLightLux(float lightLux)

        设置光照强度足够暗的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效

        Parameters:
        lightLux - 光照度阈值
      • setBrightLightLux

         abstract CameraScan<T> setBrightLightLux(float lightLux)

        设置光照强度足够明亮的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效

        Parameters:
        lightLux - 光照度阈值
      • parseScanResult

        @Nullable() static String parseScanResult(Intent data)

        解析扫描结果

        Parameters:
        data - 需解析的意图数据