Android使用zxing实现二维码扫描


首先下载zxing包,作为module导入工程当中,将zxing作为本工程的依赖包,依赖过后可能会出现sdk版本,plugin工具等版本不匹配或者不兼容的情况,根据提示对自己的sdk等工具进行升级就可以了。

Android使用zxing实现二维码扫描

比如我这里,依赖zxing包后出现了这些报错信息,而且也没有提示进行升级或者下载的链接,但是根据第一行的英文,大概意思就是,清单文件出了问题,原因是在这个被依赖的包中,最低sdk不能够比16还要小,于是我打开我的build.gradle,看到我的最低sdk版本就只有15。
Android使用zxing实现二维码扫描
Android使用zxing实现二维码扫描
于是我将这里修改为16,然后进行同步,问题解决。
依赖完成后,就可以使用zxing库为我们提供的二维码的工具类了。

生成二维码:
在布局中准备一个输入框,用来输入我们二维码的内容,再来一个按钮,用来触发生成二维码这一事件,最后用一个imageview来显示我们的二维码。
接者要做的就是在点击按钮之后生成一个内容为我们输入内容的二维码,再把这个二维码图像放置在事先准备好的imageView上面,代码如下:
Android使用zxing实现二维码扫描
Android使用zxing实现二维码扫描
扫描二维码:
扫描二维码就是调用系统的相机,然后通过回调的方法,把扫描到的结果传递回来。
代码如下:
btn_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Bundle bundle=data.getExtras();
String result=bundle.getString("result");
textResult.setText(result);
//mInput.setText(result);
}else if(resultCode==RESULT_CANCELED){
textResult.setText("扫描出错");
}
}