-
- 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。(适用于想在扫码界面写交互逻辑,又因为项目 架构或其它原因,无法直接或间接继承CaptureActivity或CaptureFragment时使用)
3、继承CameraScan自己实现一个,可参照默认实现类DefaultCameraScan,其他步骤同方式2。(高级用法,谨慎使用)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interfaceCameraScan.OnScanResultCallback扫描结果回调
-
Field Summary
Fields Modifier and Type Field Description public static StringSCAN_RESULTpublic static intLENS_FACING_FRONTpublic static intLENS_FACING_BACKpublic final static floatASPECT_RATIO_4_3public final static floatASPECT_RATIO_16_9
-
Method Summary
Modifier and Type Method Description CameraScansetNeedTouchZoom(boolean needTouchZoom)设置是否需要支持触摸缩放 CameraScansetNeedAutoZoom(boolean needAutoZoom)设置是否需要支持自动缩放 abstract CameraScansetCameraConfig(CameraConfig cameraConfig)设置相机配置,请在startCamera之前调用 abstract CameraScansetAnalyzeImage(boolean analyze)设置是否分析图像,通过此方法可以动态控制是否分析图像,常用于中断扫码识别。如:连扫时,扫到结果,然后停止分析图像1. abstract CameraScansetAnalyzer(Analyzer analyzer)设置分析器,如果内置的一些分析器不满足您的需求,你也可以自定义Analyzer,自定义时,切记需在startCamera之前调用才有效。内置了一些Analyzer的实现类如下: abstract CameraScansetVibrate(boolean vibrate)设置是否振动 abstract CameraScansetPlayBeep(boolean playBeep)设置是否播放提示音 abstract CameraScansetOnScanResultCallback(CameraScan.OnScanResultCallback callback)设置扫码结果回调 abstract CameraScanbindFlashlightView(@Nullable() View v)绑定手电筒,绑定后可根据光线传感器,动态显示或隐藏手电筒 abstract CameraScansetDarkLightLux(float lightLux)设置光线足够暗的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效 abstract CameraScansetBrightLightLux(float lightLux)设置光线足够明亮的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效 static StringparseScanResult(Intent data)解析扫描结果 -
Methods inherited from class com.king.zxing.ICamera
getCamera, release, startCamera, stopCamera -
Methods inherited from class com.king.zxing.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 setNeedTouchZoom(boolean needTouchZoom)
设置是否需要支持触摸缩放
- Parameters:
needTouchZoom- 是否需要支持触摸缩放
-
setNeedAutoZoom
CameraScan setNeedAutoZoom(boolean needAutoZoom)
设置是否需要支持自动缩放
- Parameters:
needAutoZoom- 是否需要支持自动缩放
-
setCameraConfig
abstract CameraScan setCameraConfig(CameraConfig cameraConfig)
设置相机配置,请在startCamera之前调用
- Parameters:
cameraConfig- 相机配置
-
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- 是否播放蜂鸣提示音
-
setOnScanResultCallback
abstract CameraScan setOnScanResultCallback(CameraScan.OnScanResultCallback callback)
设置扫码结果回调
- Parameters:
callback- 扫码结果回调
-
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- 需解析的意图数据
-
-
-
-