android使用ZXing实现二维码扫描功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq77485042/article/details/80135615

二维码现在在我们生活中基本上每天都会用到,所以现阶段开发的App很多都使用到了二维码扫描功能。说起二维码扫描基本上大家都是用的ZXing谷歌官方提供的库。

以下我就讲讲在项目中如何介入二维码扫描识别功能:

1.在项目的build.gradle中加入依赖库:

compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'//二维码扫描
compile 'com.google.zxing:core:3.2.1'

2.还是在项目的build.gradle中加入这行加在最外层

repositories {
    jcenter()
}

3.在你需要调用扫描二维码的地方加入:

IntentIntegrator integrator = new IntentIntegrator(this);
        integrator.setPrompt("请对准二维码"); //底部的提示文字
        integrator.initiateScan();

注:此处的this是activity对象。如果是在fragment中调用的话就用getActivity()方法获取到宿主Activity对象传过去。

4.在Activity中重写onActivityResult()方法,相信这个方法大家都不会陌生吧!!!

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if(result != null) {
        if(result.getContents() == null) {
            Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
        }
    }
}

此处就是扫描二维码后返回的信息result。

做完以上步骤,你就会发现that,什么鬼,为什么是横屏的,我想要的是竖屏的。
如果想要竖屏的就得加以下几个步骤:

1.在调用扫描二维码的时候加上

integrator.setOrientationLocked(false);

在调用initiateScan()方法之前

IntentIntegrator integrator = new IntentIntegrator(this);
        integrator.setPrompt("请对准二维码"); //底部的提示文字,设为""可以置空
        integrator.setOrientationLocked(false);
        integrator.initiateScan();

2.在清单文件中加入:

<activity
            android:name="com.journeyapps.barcodescanner.CaptureActivity"
            android:screenOrientation="fullSensor"
            tools:replace="screenOrientation" />

3.在清单文件的跟节点上加上:

xmlns:tools="http://schemas.android.com/tools"

以上就完成了二维码扫描的功能。

猜你喜欢

转载自blog.csdn.net/qq77485042/article/details/80135615
今日推荐