ZXing Android二维码实现

Android 端的二维码功能实现,ZXing 的扫码生成能力用起来还挺顺手。

ZXing 的二维码扫描库,功能蛮全的,支持多种条码类型,文档也还算清楚。想在 App 里加个扫码功能,用它比较稳。你只要在项目里引一下库,其他的就基本是调 API 的事儿。

相机权限这块得注意,AndroidManifest.xml里别忘了加上android.permission.CAMERA。不然真机调试时直接报错,一脸懵。

CameraSource负责开启摄像头预览,这玩意儿可以配一下分辨率、自动对焦之类的。直接贴到SurfaceViewTextureView上就能实时看到画面。

扫描用的是BarcodeDetector,你可以设定只识别二维码,减少误识别。配合detect()方法来识别图像里的码,响应还挺快。

界面部分一般就是一个SurfaceView加个TextView,扫出来的内容可以直接显示。布局写简单点也够用了。

要扫描事件,可以用BarcodeCallback注册回调。你可以在onPossibleResultPoints()里拿到识别结果,想跳转、存数据库都行。

二维码生成也方便,用MultiFormatWriter + BitMatrix可以把任意字符串转成 Bitmap。丢进ImageView里展示,或者保存成图片文件。

交互上加个按钮,用户点一下选择“生成”或“扫码”,逻辑比较清晰。事件监听写好就行。

别忘了做点错误,比如权限没开、摄像头打不开、扫码失败这些都要兜底。可以弹个 Toast 或者引导去设置页面。

性能优化也值得搞搞,比如降低帧率、省电。扫码频率太高的话挺耗电的。还有就是异步,不然 UI 卡得一批。

Android 设备型号千奇百怪,兼容性要多测。尤其是相机预览,不同手机分辨率差距挺大,最好自适应下。

如果你正准备给 App 加上二维码功能,这个实例可以作为模板照着改,思路清晰,代码也不绕。

zip 文件大小:1021.92KB