登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

媲美微信的二维码识别库

devilsen   2019-07-22 22:27   收藏

GitHub release

CZXing

C++ port of ZXing for Android

加入了OpenCV的图像处理,能在更远的距离进行放大操作,并且能更快的识别出二维码。

使用

在gradle中:

implementation 'me.devilsen:CZXing:0.2.1'

1. 直接使用

你可以直接使用已经封装好的ScanActivity作为扫码界面

Intent intent = new Intent(this, ScanActivity.class);
                      startActivity(intent);

使用ScanActivity来接管扫描返回的数据

ScanActivityDelegate.getInstance().setScanResultDelegate(result -> {
    Intent intent = new Intent(MainActivity.this, DelegateActivity.class);
    intent.putExtra("result", result);
    startActivity(intent);
});

2. 自定义界面

或者使用ScanView来自定义你的界面

<me.devilsen.czxing.view.ScanView
    android:id="@+id/surface_view_scan"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在自定义的Activity中你需要接管ScanView的生命周期,具体可以参看ScanActivity界面,同时设定setScanListener()

mScanView.setScanListener(new ScanListener() {
    @Override
    public void onScanSuccess(String result) {
        // 扫码成功
    }

    @Override
    public void onOpenCameraError() {
        // 打开相机出错
    }

    @Override
    public void onClickCard() {
        // 点击我的卡片
    }
});

如果你需要展示 我的卡片 可以选择关闭

mScanView.hideCard();

效果展示

点击观看

项目地址:https://github.com/devilsen/CZXing