-
- All Implemented Interfaces:
-
com.king.camera.scan.ICamera,com.king.camera.scan.ICameraControl
public class BaseCameraScan<T> extends CameraScan<T>
相机扫描基类;BaseCameraScan 为 CameraScan 的默认实现
快速实现扫描识别主要有以下几种方式:
1、通过继承 BaseCameraScanActivity或者BaseCameraScanFragment或其子类,可快速实现扫描识别。 (适用于大多数场景,自定义布局时需覆写getLayoutId方法)
2、在你项目的Activity或者Fragment中实例化一个BaseCameraScan。(适用于想在扫描界面写交互逻辑,又因为项目 架构或其它原因,无法直接或间接继承BaseCameraScanActivity或BaseCameraScanFragment时使用)
3、继承CameraScan自己实现一个,可参照默认实现类BaseCameraScan,其他步骤同方式2。(高级用法,谨慎使用)
-
-
Constructor Summary
Constructors Constructor Description BaseCameraScan(ComponentActivity activity, PreviewView previewView)BaseCameraScan(Fragment fragment, PreviewView previewView)BaseCameraScan(Context context, LifecycleOwner lifecycleOwner, PreviewView previewView)
-
Method Summary
Modifier and Type Method Description CameraScan<T>setCameraConfig(CameraConfig cameraConfig)设置相机配置,请在startCamera之前调用 voidstartCamera()启动相机预览 voidstopCamera()停止相机预览 CameraScan<T>setAnalyzeImage(boolean analyze)设置是否分析图像,通过此方法可以动态控制是否分析图像,常用于中断扫码识别。如:当扫描到结果时,请停止分析图像,处理扫描结果;如需继续连扫,等处理完后,再调用此方法,设置为true,继续扫描分析图像 CameraScan<T>setAnalyzer(Analyzer<T> analyzer)设置分析器,如果内置的一些分析器不满足您的需求,你也可以自定义Analyzer,自定义时,切记需在startCamera之前调用才有效。 voidzoomIn()放大 voidzoomOut()缩小 voidzoomTo(float ratio)缩放到指定比例 voidlineZoomIn()线性放大 voidlineZoomOut()线性缩小 voidlineZoomTo(@FloatRange(from = 0.0, to = 1.0) float linearZoom)线性缩放到指定比例 voidenableTorch(boolean torch)设置闪光灯(手电筒)是否开启 booleanisTorchEnabled()闪光灯(手电筒)是否开启 booleanhasFlashUnit()是否支持闪光灯 CameraScan<T>setVibrate(boolean vibrate)设置是否振动 CameraScan<T>setPlayBeep(boolean playBeep)设置是否播放提示音 CameraScan<T>setOnScanResultCallback(CameraScan.OnScanResultCallback<T> callback)设置扫描结果回调 CameragetCamera()获取 Camera voidrelease()释放 CameraScan<T>bindFlashlightView(@Nullable() View flashlightView)绑定手电筒,绑定后可根据光线传感器,动态显示或隐藏手电筒;并自动处理点击手电筒时的开关切换。 CameraScan<T>setDarkLightLux(float lightLux)设置光线足够暗的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效 CameraScan<T>setBrightLightLux(float lightLux)设置光线足够明亮的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效 -
-
Method Detail
-
setCameraConfig
CameraScan<T> setCameraConfig(CameraConfig cameraConfig)
设置相机配置,请在startCamera之前调用
- Parameters:
cameraConfig- 相机配置
-
startCamera
void startCamera()
启动相机预览
-
stopCamera
void stopCamera()
停止相机预览
-
setAnalyzeImage
CameraScan<T> setAnalyzeImage(boolean analyze)
设置是否分析图像,通过此方法可以动态控制是否分析图像,常用于中断扫码识别。如:当扫描到结果时,请停止分析图像,处理扫描结果;如需继续连扫,等处理完后,再调用此方法,设置为true,继续扫描分析图像
- Parameters:
analyze- 是否分析图像
-
setAnalyzer
CameraScan<T> setAnalyzer(Analyzer<T> analyzer)
设置分析器,如果内置的一些分析器不满足您的需求,你也可以自定义Analyzer,自定义时,切记需在startCamera之前调用才有效。
- Parameters:
analyzer- 分析器
-
zoomIn
void zoomIn()
放大
-
zoomOut
void zoomOut()
缩小
-
zoomTo
void zoomTo(float ratio)
缩放到指定比例
- Parameters:
ratio- 缩放比例
-
lineZoomIn
void lineZoomIn()
线性放大
-
lineZoomOut
void lineZoomOut()
线性缩小
-
lineZoomTo
void lineZoomTo(@FloatRange(from = 0.0, to = 1.0) float linearZoom)
线性缩放到指定比例
- Parameters:
linearZoom- 线性缩放比例;范围在:0.0 ~ 1.
-
enableTorch
void enableTorch(boolean torch)
设置闪光灯(手电筒)是否开启
- Parameters:
torch- 是否开启闪光灯(手电筒)
-
isTorchEnabled
boolean isTorchEnabled()
闪光灯(手电筒)是否开启
-
hasFlashUnit
boolean hasFlashUnit()
是否支持闪光灯
-
setVibrate
CameraScan<T> setVibrate(boolean vibrate)
设置是否振动
- Parameters:
vibrate- 是否振动
-
setPlayBeep
CameraScan<T> setPlayBeep(boolean playBeep)
设置是否播放提示音
- Parameters:
playBeep- 是否播放蜂鸣提示音
-
setOnScanResultCallback
CameraScan<T> setOnScanResultCallback(CameraScan.OnScanResultCallback<T> callback)
设置扫描结果回调
- Parameters:
callback- 扫描结果回调
-
getCamera
@Nullable() Camera getCamera()
获取 Camera
-
release
void release()
释放
-
bindFlashlightView
CameraScan<T> bindFlashlightView(@Nullable() View flashlightView)
绑定手电筒,绑定后可根据光线传感器,动态显示或隐藏手电筒;并自动处理点击手电筒时的开关切换。
-
setDarkLightLux
CameraScan<T> setDarkLightLux(float lightLux)
设置光线足够暗的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效
- Parameters:
lightLux- 光线亮度阈值
-
setBrightLightLux
CameraScan<T> setBrightLightLux(float lightLux)
设置光线足够明亮的阈值(单位:lux),需要通过bindFlashlightView绑定手电筒才有效
- Parameters:
lightLux- 光线亮度阈值
-
-
-
-