Android二维码扫描
1.简介
Android的二维码扫描,实现的方法是ZXing二维码,在github上找到的2700多星星的大神写的,实现挺方便的(当然我这只做了一个简单的扫描功能,还没往下研究,做个记录)
github地址
https://github.com/search?o=desc&q=ZXing&s=stars&type=Repositories&utf8=%E2%9C%93
2.实现方法
首先,在build.gradle中加入依赖
compile 'cn.yipianfengye.android:zxing-library:2.2'
其次,在Application类里面初始化一下(一定要初始化,不然会提示项目错误,我碰到的是提示宽高不能小于0)
@Override
public void onCreate() {
super.onCreate();
ZXingLibrary.initDisplayOpinion(this);
}
在代码中执行打开扫描二维码界面操作,例如加一个button的点击事件,会直接跳转到依赖已经写好的CaptureActivity类里面,如下:
/**
* 打开默认二维码扫描界面
*/
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
这里的REQUEST_CODE是我们定义的int型常量。这个随便定义一下就可以了,用来传到扫描界面,扫描成功后还会再返回来,用来判断扫描成功的
在Activity中,复写一下onActivityResult方法,并在这个方法中接收扫描传回来的结果,这里是打印个吐司
/**
* 处理二维码扫描结果
*/
if (requestCode == REQUEST_CODE) {
//处理扫描结果(在界面上显示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
终结
这样就实现了最基本的二维码扫描功能! 当然这个一维码也是可以直接扫描的!!!