ZXing Android二维码实现
Android 端的二维码功能实现,ZXing 的扫码生成能力用起来还挺顺手。
ZXing 的二维码扫描库,功能蛮全的,支持多种条码类型,文档也还算清楚。想在 App 里加个扫码功能,用它比较稳。你只要在项目里引一下库,其他的就基本是调 API 的事儿。
相机权限这块得注意,AndroidManifest.xml
里别忘了加上android.permission.CAMERA
。不然真机调试时直接报错,一脸懵。
CameraSource负责开启摄像头预览,这玩意儿可以配一下分辨率、自动对焦之类的。直接贴到SurfaceView
或TextureView
上就能实时看到画面。
扫描用的是BarcodeDetector,你可以设定只识别二维码,减少误识别。配合detect()
方法来识别图像里的码,响应还挺快。
界面部分一般就是一个SurfaceView
加个TextView
,扫出来的内容可以直接显示。布局写简单点也够用了。
要扫描事件,可以用BarcodeCallback
注册回调。你可以在onPossibleResultPoints()
里拿到识别结果,想跳转、存数据库都行。
二维码生成也方便,用MultiFormatWriter
+ BitMatrix
可以把任意字符串转成 Bitmap。丢进ImageView
里展示,或者保存成图片文件。
交互上加个按钮,用户点一下选择“生成”或“扫码”,逻辑比较清晰。事件监听写好就行。
别忘了做点错误,比如权限没开、摄像头打不开、扫码失败这些都要兜底。可以弹个 Toast 或者引导去设置页面。
性能优化也值得搞搞,比如降低帧率、省电。扫码频率太高的话挺耗电的。还有就是异步,不然 UI 卡得一批。
Android 设备型号千奇百怪,兼容性要多测。尤其是相机预览,不同手机分辨率差距挺大,最好自适应下。
如果你正准备给 App 加上二维码功能,这个实例可以作为模板照着改,思路清晰,代码也不绕。
评论区