首先导包依赖zxing的
implementation 'com.google.zxing:core:3.2.1'
implementation 'com.journeyapps:zxing-android-embedded:3.4.0@aar'
直接上方法 进行调用就可以 在address 中传入要生成的文字等或者地址
private Bitmap createQRImage(String address) {
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
int imageSize = (int) (size.x * QR_IMAGE_WIDTH_RATIO);
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(
address,
BarcodeFormat.QR_CODE,
imageSize,
imageSize,
null);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
return barcodeEncoder.createBitmap(bitMatrix);
} catch (Exception e) {
Toast.makeText(this, getString(R.string.error_fail_generate_qr), Toast.LENGTH_SHORT)
.show();
}
return null;
}
QR_IMAGE_WIDTH_RATIO 是图片二维码的大小
private static final float QR_IMAGE_WIDTH_RATIO = 1.0f; // 二维码大小
createQRImage 方法返回的BitMap 那么直接使用你的ImageView 进行赋值 BitMaP 赋值就行
下面 是Kotlin 的 代码
private fun createQRImage(address: String): Bitmap? {
val size = Point()
windowManager.defaultDisplay.getSize(size)
val imageSize = (size.x * QR_IMAGE_WIDTH_RATIO)
try {
val bitMatrix = MultiFormatWriter().encode(
address,
BarcodeFormat.QR_CODE,
imageSize.toInt(),
imageSize.toInt(), null)
val barcodeEncoder = BarcodeEncoder()
return barcodeEncoder.createBitmap(bitMatrix)
} catch (e: Exception) {
}