700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Andro Studio 基于Zing一维码二维码扫描代码

Andro Studio 基于Zing一维码二维码扫描代码

时间:2021-12-07 04:25:25

相关推荐

Andro Studio 基于Zing一维码二维码扫描代码

现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的扫码功能就是其中之一。

但是因为zxing的功能太强大了,包含了很多我们用不上的功能,所以一般都会抽取其中的扫码功能单独使用,这个抽取的过程还是有点麻烦的,但是已经有开发者为我们省去了这个过程,直接使用zxing-android-embedded 文件库,来实现扫码功能。

以AndrioSdudio开发环境为例,实现扫码功能,具体操如下:

一、扫描一维码或二维码

新建工程文件

2. 选择Basic Activity模板,也可以选择其它类型模板页,完成新建工程项目。

3.在新建工程建里,打开MainActivity文件。

在MainActivity库里引入:

import com.google.zxing.integration.android.IntentIntegrator;

import com.google.zxing.integration.android.IntentResult;

如下图:

4.打开项目中 Build gradle文件

在dependencies 中加入以下代码:

implementation ‘com.journeyapps:zxing-android-embedded:3.5.0@aar’

implementation ‘com.google.zxing:core:3.2.1’

如下图所示:

在res\layout\content_main.xml文件中加入以下代码:

5.在MainActivity文件中,加入相应代码:

private Button buttonscan;

如下图所示:

同时,在onCreate中加入下面代码:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Snackbar.make(view, “Replace with your own action”, Snackbar.LENGTH_LONG)

.setAction(“Action”, null).show();

}

});

//扫描BUTON事件buttonscan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);integrator = new IntentIntegrator(MainActivity.this);integrator.setPrompt(" "); //底部的提示文字,设为""可以置空integrator.setCameraId(0); //前置或者后置摄像头integrator.setBeepEnabled(false); //扫描成功的「哔哔」声,默认开启integrator.initiateScan();}});

现在可以RUN一下了。

注:如果出现代码中有红色错误提示,程序不能运行。可以通过多编译几下程序,问题如仍未解决,可关闭工程后,重新打开。

如果代码中没有别的错误信息提示,便可出现以下:

点击扫码按钮后,出现横屏扫码界面,如下:

此时可以扫描二维码,但目前还没有得到扫描的结果。

为此,我们加入以下代码,通过 onActivityResult的方法获取 扫描回来的值。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode,resultCode,data);

if(intentResult != null) {

if(intentResult.getContents() == null) {

Toast.makeText(this,“内容为空”,Toast.LENGTH_LONG).show();

} else {

// ScanResult 为 获取到的字符串

String ScanResult = intentResult.getContents();

Toast.makeText(this, ScanResult,Toast.LENGTH_LONG).show();

edittext.setText(ScanResult);

}

} else {

super.onActivityResult(requestCode,resultCode,data);

}

}

再次运行程序,通过扫描后,可得到扫码结果,如下图:

以上是扫码全部内容。

如果想有微信竖屏和相关界面,还需要对库中代码做相应改动,请继续看第二部分。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。