我正在 Android 应用程序中使用 ZXing 库生成二维码。
我不希望将其直接保存到文件中,而是希望将其保存到 ImageView 中。
这是我的代码:
String WIFIQRCODE = "";
String SSID = etSSID.getText().toString();
String PASS = etPASS.getText().toString();
String PASSTYPE = sTYPE.getSelectedItem().toString();
WIFIQRCODE = "WIFI:T:"+PASSTYPE+";S:"+SSID+";P:"+PASS;
//Inform the user the button1 has been clicked
QRCodeWriter writer = new QRCodeWriter();
BitMatrix bitMatrix = null;
try {
bitMatrix = writer.encode(WIFIQRCODE, BarcodeFormat.QR_CODE, 300, 300);
File file = new File(context.getFilesDir(), "/sdcard/Images/"+SSID+".png");
MatrixToImageWriter.writeToFile(bitMatrix, "png", file);
} catch (WriterException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
如何修改它,使其放入 ImageView 而不是文件?
最佳答案
您需要从 BitMatrix
获取 Bitmap
以在 ImageView 中直接设置图像,如下所示:
int height = bitMatrix.getHeight();
int width = bitMatrix.getWidth();
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
for (int x = 0; x < width; x++){
for (int y = 0; y < height; y++){
bmp.setPixel(x, y, bitMatrix.get(x,y) ? Color.BLACK : Color.WHITE);
}
}
ImageView qr_image = (ImageView) findViewById(R.id.qrimage);
qr_image.setImageBitmap(bmp);
有关更多详细信息,请参阅生成 QR Codes with ZXing用于从 bitMatrix 获取位图
关于java - 直接生成二维码到ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337448/