Package 

Class CameraScan

  • All Implemented Interfaces:
    com.king.zxing.ICamera , com.king.zxing.ICameraControl

    
    public abstract class CameraScan
     implements ICamera, ICameraControl
                        

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

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

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

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

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

    • Method Detail

      • setNeedTouchZoom

         CameraScan setNeedTouchZoom(boolean needTouchZoom)

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

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

         CameraScan setNeedAutoZoom(boolean needAutoZoom)

        设置是否需要支持自动缩放

        Parameters:
        needAutoZoom - 是否需要支持自动缩放
      • setAnalyzeImage

         abstract CameraScan setAnalyzeImage(boolean analyze)

        设置是否分析图像,通过此方法可以动态控制是否分析图像,常用于中断扫码识别。如:连扫时,扫到结果,然后停止分析图像

        1. 因为分析图像默认为true,如果想支持连扫,在onScanResultCallback返回true拦截即可。当连扫的处理逻辑比较复杂时,请在处理逻辑前通过调用setAnalyzeImage(false)来停止分析图像,等逻辑处理完后再调用getCameraScan().setAnalyzeImage(true)来继续分析图像。

        2. 如果只是想拦截扫码结果回调自己处理逻辑,但并不想继续分析图像(即不想连扫),可通过调用getCameraScan().setAnalyzeImage(false)来停止分析图像。

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

         abstract CameraScan setAnalyzer(Analyzer analyzer)

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

        内置了一些Analyzer的实现类如下:

        Parameters:
        analyzer - 分析器
      • setVibrate

         abstract CameraScan setVibrate(boolean vibrate)

        设置是否振动

        Parameters:
        vibrate - 是否振动
      • setPlayBeep

         abstract CameraScan setPlayBeep(boolean playBeep)

        设置是否播放提示音

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

         abstract CameraScan bindFlashlightView(@Nullable() View v)

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

        Parameters:
        v - 手电筒视图
      • setDarkLightLux

         abstract CameraScan setDarkLightLux(float lightLux)

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

        Parameters:
        lightLux - 光线亮度阈值
      • setBrightLightLux

         abstract CameraScan setBrightLightLux(float lightLux)

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

        Parameters:
        lightLux - 光线亮度阈值
      • parseScanResult

        @Nullable() static String parseScanResult(Intent data)

        解析扫描结果

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