** 自用Android 二维码扫描 / 生成 **
适用于Android的二维码(条形码)扫描/二维码生成,使用ZXing进行解码。 该项目基于ZxingLite,见Fork。实现基本的Android 二维码生成与扫描功能. 有关更多高级用法,可参考zxing-android-embedded
- 在项目根目录的
build.gradle
文件中添加:
allprojects {
repositories {
...
mavenCentral()
}
}
- 在项目Module下的
build.gradle
文件中添加:
dependencies {
implementation 'io.github.xmaihh:zxinglite:1.0.1'
}
- Min SDK 14 (Android 4.0 Ice Cream Sandwich)
- 二维码/条形码生成QRCodeUtil
boolean success = QRCodeUtil.createQRImage(et_url.getText().toString().trim(), 800, 800,
checkBox.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher) :
null,
filePath);
- 二维码图片识别QRcodeActivity
Bitmap obmp = ((BitmapDrawable) (iv_qrcode).getDrawable()).getBitmap();
int width = obmp.getWidth();
int height = obmp.getHeight();
int[] data = new int[width * height];
obmp.getPixels(data, 0, width, 0, 0, width, height);
RGBLuminanceSource source = new RGBLuminanceSource(width, height, data);
BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source));
QRCodeReader reader = new QRCodeReader();
Result re = null;
try {
re = reader.decode(bitmap1);
} catch (NotFoundException e) {
e.printStackTrace();
} catch (ChecksumException e) {
e.printStackTrace();
} catch (FormatException e) {
e.printStackTrace();
}
- 二维码扫描 请参考DefaultCaptureActivity
<!--生成\识别二维码到本地需要开启读写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--扫描二维码需要开启以下权限-->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
适配Android6.0及以上需自行处理以上权限