Zxing扫码流程梳理

最近在优化扫码功能,对Zxing提供的demo做了一个梳理,下面时序图看不清楚的可以下载下来看,本来想精简下的,发现精简后流程就不清晰了。


扫码大致流程:应用扫码activity启动------->启动摄像头——>获得bitmap照片----->对得到的照片做编码解析----->获得对应的信息做处理。


<pre name="code" class="html">启动流程如下:
CaptureActivity启动整个流程就5个步骤,都在CaptureActivity的onresume中,具体内容如下:

1.生成cameraManager对象。
 cameraManager = new CameraManager(getApplication())。
  进去看构造方法做了什么事
  public CameraManager(Context context) {
    this.context = context;
    this.configManager = new CameraConfigurationManager(context);
    previewCallback = new PreviewCallback(configManager);
  }
  生成2个实例CameraConfigurationManager PreviewCallback,分别用做camera参数配置和camera预览数据回调
  所谓camera预览数据回调就是Camera抓取到数据后回调此对象回传数据给调用方
  
  
2.实例化扫码UI控件
  viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);
  viewfinderView.setCameraManager(cameraManager);
  获得CameraManager实例,设置CameraManager实例到viewfinderView,为UI展示提供尺寸。
  viewfinderView是一个自定义view,在ondraw中根据CameraManager中CameraConfigurationManager的配置参数来绘制UI
  为后面UI绘制做准备。
  
  
3.打开摄像头
  cameraManager.openDriver(surfaceHolder);
  进去看具体做了什么
 public synchronized void openDriver(SurfaceHolder holder) throws IOException {
	.....
    if (theCamera == null) {
      theCamera = OpenCameraInterface.open(requestedCameraId);//打开指定id的摄像头
      if (th
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值