二维码现在在我们生活中基本上每天都会用到,所以现阶段开发的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()方法,相信这个方法大家都不会陌生吧!!!
@Overrideprotected 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="/tools"
以上就完成了二维码扫描的功能。