java - 直接生成二维码到ImageView?

标签 java android imageview zxing

我正在 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/

相关文章:

java - 使用 ActionListener 调用递归树方法

java - 我创建了用于控制 swing 中的图像的代码,但我看不到任何东西,为什么?

android - Gradle - 基于 buildType 更改 Artifact repoKey

java - 如何从 javafx 中的另一个窗口显示图像?

java - 如何从 Amazon S3 下载图像并将其保存到 ImageView

java - SunCertPathBuilderException 尽管设置了信任库属性

java - 什么是按位运算?

java - 基于sdk android更改方法的可见性

android - Radiogroup 值不会保存在 android 的 sharedpreference 中

java - GestureDetector 检测 GridView 项目上的 DoubleClick