基于zxing的仿微信二维码扫描界面
https://github.com/iamlocky/ZxingLite
本项目fork自yangxixi88/ZxingLite,在原项目基础上添加了本地图片识别,闪光灯和结果监听器,识别出结果后可以通过onActivityResult或者自定义ResultListener获取String结果
使用方法
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
Add the dependency
dependencies {
compile 'com.github.iamlocky:ZxingLite:1.0.1'
}
如果gradle报错则改为
compile ('com.github.iamlocky:ZxingLite:1.0.1',{
exclude group: 'com.android.support', module:'appcompat-v7'
})
ps:发布时漏了删gradle里的espresso2.2.2,如果报错请自行exclude
manifests需要有三项权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
如果启动报错找不到activity则添加
<activity
android:name="com.google.zxing.activity.WeChatCaptureActivity"
android:screenOrientation="portrait"
android:launchMode="standard"
/>
准备工作做完了(注意高版本要动态申请权限)
开始使用
直接用ResultListener
WeChatCaptureActivity.init(context, new ResultListener() {
@Override
public void onResult(String s) {
//处理返回的结果s;
}
}, getResources().getColor(R.color.colorPrimary), "二维码扫描");
或者第二个参数传null,直接用onActivityResult
WeChatCaptureActivity.init(context, null, getResources().getColor(R.color.colorPrimary), "二维码扫描2");
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1001) {
String result = data.getStringExtra("result");
//处理结果
}
}
效果图