B4X FEED 给B4A程序增加类似微信“扫一扫”的扫描条形码/二维码功能

اطلاعات موضوع

درباره موضوع در تاریخ, در دسته b4xfeed ایجاد شده و آغاز کننده آن practicalsoftمی باشد و موضوع آن: 给B4A程序增加类似微信“扫一扫”的扫描条形码\/二维码功能 است. این موضوع تا کنون 40 بازدید کننده و, 0 پاسخ داشته و 0 بار پسندیده شده...
نام دسته b4xfeed
نام موضوع 给B4A程序增加类似微信“扫一扫”的扫描条形码\/二维码功能
آغاز کننده موضوع practicalsoft
تاریخ شروع
پاسخ‌ها
0
بازدیدها
40
پسندها
0
آخرین ارسال توسط PracticalSoft
Jun 6, 2020
11,559
4,422
最近在用B4A完成一份APP时,客户要求增加类似微信“扫一扫”的扫描条形码/二维码功能。如下图所示:
برای دیدن تصاویر باید ثبت نام کنید

以前从未写过这方面代码,马上就想到了万能的b4x.com论坛,一阵搜索下来,收获不少,许多大神们早已写了现成的类库供大家使用,大都是基于google的Zxing库衍生而来,如ABZxing、jhsicezxing1、ZxingBarcodeScanner、ZxingGlass、zxScannerLiveView等。经过尝试,发现使用这些库确实很方便,廖廖几句代码就可以给程序增加上扫码功能。但是挑剔的用户提出,他觉着微信的“扫一扫”界面做的比较漂亮,要求也要实现那样的界面。
行,不就是修改些属性设置再加些layout元素吗?容易!我随即开始动手改造。。。结果,我被打败了,上面提到的几个库都封装的很好,基本不支持DIY,经过不断测试和比较,发现使用其中的ZxingBarcodeScanner、zxScannerLiveView这两个库比较接近最终结果,但是仍达不到完美模仿微信“扫一扫”界面效果:用ZxingBarcodeScanner库,屏幕中间的那根忽明忽暗的“极光线”始终去除不掉,即便把线的颜色设置成透明也不管用,会自动设成默认黑色;用zxScannerLiveView库则可以很好地DIY出任意的界面效果,但是不知什么原因,它的识别效率却不高,一般正常的扫码,几秒钟应该就能返回结果,而使用zxScannerLiveView库,有时居然半天都识别不出来,只要客户要求高点的,肯定通不过。
得,难道要用zxing源库在esclips里去重新写一个B4A的库?那岂不是搞大了!犯不着吧,呵呵...不甘心的我继续在论坛里搜寻着,终于有了新发现——CRZXing库,这个库仅提供了两个函数decodeBitmap、encodeBitmap,顾名思义,就是对2D/3D类型码编码与解码的意思,试了一下,居然效率很快。山穷水尽的我,终于看到了柳暗花明,于是乎萌发了这样的解决思路:
1.利用CameraExClass类模块实现手机摄像头拍照预览;
2.对相机实时预览的画面指定区域进行动态捕捉,即截屏;
3.利用CRZXing库对第2步获得的bitmap内容解析,获得2D/3D码信息。...



 

عقب
بالا