關於Zxing集成教程,網上有很多很多,我想說你妹的很多都是“copy,copy,copy”,問題是尼瑪到最后還出不來。。。前幾天看了android Bus網站,看到了一個集成Zxing集成,挺新穎的,就自己進一步完善了以下功能,供大家使用。
主要功能:
掃描二維碼
相冊選取照片,掃描二維碼
夜間,開燈關燈
生成不帶Logo和帶Logo二維碼
重點是集成,關於集成所需要的代碼包,我會在文章末尾附上!
1:首先在AndroidManifest.xml中添加權限以及聲明掃面Activity如下代碼:
>
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar">
2:在app的build.gradle中添加如下代碼:compile 'com.journeyapps:zxing-android-embedded:3.3.0'
compile 'com.google.zxing:core:3.2.1'
3:將drawble包下的qr_code_bg.9.png,scan_line.png,shadow.png 文件復制到工程相應目錄下。(文章末尾點擊地址1)
4:將raw包復制到res目錄下
5:在你的color.xml文件中粘貼如下代碼:
#ff000000
#ffff0000
#60000000
#b0000000
#00000000
6:在strings.xml文件中粘貼如下代碼:
掃一掃
開啟閃光燈
關閉閃光燈
取景框對准二維碼, 即可自動掃描
7:將zxing包copy到你的代碼目錄下,如下圖所示:
然后將里面的導入包改一下,切記導入Zxing包下的類!
至此集成就完畢了。看下Activity中是怎么使用的:
8:將layout包下的xml文件復制到工程項目中
如果點擊掃描二維碼://點擊掃描二維碼
Intent intent = new Intent(this, CaptureActivity.class);
startActivityForResult(intent,1);
如果是點擊生成二維碼://點擊生成帶Logo二維碼
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
imageview.setImageBitmap(QRCodeUtil.addCreateLogoQR(getApplicationContext(), "你好", bitmap,getWindowManager()));
//如果是生成不帶Logo的二維碼,可以將addCreateLogoQR方法改為:addCreateQR
掃面返回的結果都在onActivityResult 方法中返回,@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK ){
switch (requestCode){
case 1:{// 二維碼掃描結果
Bundle bundle = data.getExtras();;
String resultStr = bundle.getString("result");
textView.setText(resultStr);
break;
}
}
}
if (resultCode == 999) {//相冊解析二維碼返回的信息
/**
* 拿到解析完成的字符串
*/
String result = data.getStringExtra(CaptureActivity.scannerResultString);
textView.setText(result);
}
}
附上效果圖: