【Android】条形码/二维码扫描——ZXing源码分析

本文分析了ZXing 3.2.1版本的Android客户端源码,涵盖Book、Camera、Clipboard、Encode、History、Result、Share和Wifi模块。Camera模块涉及CameraManager、OpenCamera等,用于控制摄像头并调整参数。Result模块包含ResultHandlerFactory,根据条形码类型启动不同处理。Encode模块实现内容重新编码,History使用数据库存储扫描历史。DecodeHandler处理解码,Rect表示矩形区域,WindowManager和Display提供显示信息。
摘要由CSDN通过智能技术生成

正在更新中
针对3.2.1版本源码 与其他版本代码可能会有出入,但核心思想基本不变。
首先从com.google.zxing.client.android包中的目录结构分析:

Book:

这个文件夹中有5个类:
BrowseBookListener 实现了adapter的点击事项响应,通过获取ISBN,然后跳转到Google books中查询响应的详细信息。
SearchBookContentsActivity 通过google books查询图书相关信息的具体实现
SearchBookContentsAdapter,SearchBookContentsListItem 为listview的适配器和item类的内容,这在之前的文章中介绍过,不再赘述。
SearchBookContentsResult 包含了searchbookcontent类的基本内容,成员变量及get、set方法等

Camera

这是一个控制摄像头的类,open文件中是打开摄像头及一些配置方法,open文件夹外面的是一些camera属性的操作。
CameraFacing 枚举变量 值为0代表后置摄像头、1代表前置摄像头
OpenCamera 表示一个已打开的摄像头,同时保存着camera的原始数据CameraInfo以及摄像头朝向、方位等信息。
OpenCameraInterface 帮助我们打开摄像头的一个类,如果没有特殊偏好,默认打开后置摄像头。
AutoFocusManager自动对焦相关的函数
CameraConfigurationManager initFromCameraParameters通过屏幕分辨率和相机分辨率,去寻找最合适的预览分辨率。 setDesiredCameraParameters读取配置设置相机的对焦模式、闪光灯模式以及屏幕到相机的转动角度等信息
CameraConfigurationUtils 配置android相机的一些方法
FrontLightMode 枚举闪光灯是否开启
CameraManager camera的核心类,其他类都是在这里调用的。openDriver用于camera的打开及初始化。
PreviewCallback 回调类,当扫描到结果时会调用这个类返回结果。

Cliboard

ClipboardInterface 剪贴板接口,实现内容的复制粘贴

Encode

根据内容实现各种格式的从新编码

History

历史扫描记录,这里google采用了数据库的存储方式并用listView显示出来,基本与作者之前的文章一致,可以看数据库操作listview显示

Result

result文件夹下内容很多,首先看入口ResultHandlerFactory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值