ZXing和ZBar扫描二维码、扫描条形码和连续扫码

-------------更新--------------

这个是比较快识别率很高的二维码条形码识别库https://github.com/1948421773/XCodeScanner

如果想用其它可以参考下面:

----------------------------------------------------------------------------------------------------------------------------------

商城需要用到扫描二维码的功能,所以上网看了github上精简版的QRcode二维码扫描,找到了BGAQRCode-Android

转载自:https://github.com/bingoogolapple/BGAQRCode-Android

但是运行之后发现有BUG,开着扫描,经常会有扫描结果提示,这个是最头疼的,相比ZXingdemo进去之后要点开始识别才会有扫描结果相比,这个坑有点大。

这个功能挺强大的,封装的比较好,拓展性比较强,有兴趣的朋友可以研究下

但是有个BUG,要么如果是全部数字就不显示;要么扫完就条另一个界面并且关掉扫描activity;要么改源码,改的话耗时间比较长。不过不建议偷懒,所以我还是老老实实造个轮子。

最终决定:

方案1:找到官方ZXing的github然后自己弄一个精简版的出来

ZXing github:https://github.com/zxing/zxing
参考:http://blog.csdn.net/xx326664162/article/details/50952856
自己整出来了。其实是参照这个:https://github.com/1948421773/musicshop001 只是新建了个项目然后自己新建了Library的module,然后把网上精简版中包名下面的5个文件夹(activity camera  decode encoding utils)复制替换com.XXX.Library下面的,然后修改主module中的build.gradle添加引用此library,

compile project(':libzxing')

 

然后在Library的molule中引用com.google.zxing:core:3.3.0这个包

最后就是替换res和androidMeanifest.xml,遇到问题自己百度就可以了。

是比较粗糙的,不过有条形码和二维码同框识别的,如果想要像微信那样有黑暗情况下提示开灯的可以自己后期添加上去。

源码下载:https://github.com/1948421773/musicshop001

-----------------------------记录到此,欢迎指正

--------------------------------添加连续扫码更新-----------------------------

1.连续扫码修改CaptureActivity中的handleDecode方法:

/**
 * A valid barcode has been found, so give an indication of success and show
 * the results.
 *
 * @param rawResult The contents of the barcode.
 * @param bundle    The extras
 */
public void handleDecode(Result rawResult, Bundle bundle) {
    runnable = new Runnable(){

            @Override
            public void run() {
                // handler自带方法实现定时器
                try {
                    if (handler != null){
                        mHandler.postDelayed(runnable, 4000);
                        handler.restartPreviewAndDecode(); // 实现多次扫描
                    }
                    System.out.println("do...");
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    System.out.println("exception...");
                }

            }
        };
        mHandler.postDelayed(runnable, 4000);
    inactivityTimer.onActivity();
    beepManager.playBeepSoundAndVibrate();
    Toast.makeText(this, rawResult.getText(), Toast.LENGTH_SHORT).show();
    /*Intent resultIntent = new Intent();
    bundle.putInt("width", mCropRect.width());
    bundle.putInt("height", mCropRect.height());
    bundle.putString("result", rawResult.getText());
    resultIntent.putExtras(bundle);
    this.setResult(RESULT_OK, resultIntent);
    CaptureActivity.this.finish();*/
}

2.记得声明用到的两个变量:
Handler mHandler = new Handler();
Runnable runnable;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@zxing/library是一个开源的Java条码图像处理库。它可以解码和生成不同类型的条码,如二维码和一维码。该库提供简单易用的API,可以将条码图像转换为对应的文本数据,或者将文本数据生成为条码图像。 使用@zxing/library,我们可以轻松地实现将一维码和二维码解码为文本数据的功能。只需提供相应的条码图像,调用库中的解码方法即可获取到条码所代表的文本数据。这对于快速处理扫描到的条码信息非常有用,例如在移动支付、电商购物和物流快递等场景下。 除了解码外,@zxing/library还提供了生成条码图像的功能。我们可以根据需要的条码类型和文本数据,调用库中的生成方法得到相应的条码图像。这样,我们可以方便地将文本数据转化为可供扫描的条码图像,用于商品标识、会员卡等应用。 @zxing/library支持多种常见的条码类型,如EAN-13、UPC-A、Code39、QR Code等。而且它还可以处理包含错误修正级别、尺寸和颜色等参数的高度定制化的条码生成需求。 由于它是开源的,@zxing/library拥有一个活跃的社区,更新频繁且稳定。对于开发者来说,可以轻松集成并使用该库,无需自己从头开始编写条码图像处理的代码。 总之,@zxing/library是一个功能强大且易用的条码图像处理库,可以实现条码的解码和生成。无论是解码扫描到的条码信息,还是生成可供扫描的条码图像,@zxing/library都是一个值得推荐的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值