2013-10-12 86 views
2

你好堆棧溢出的人,直接生成QR碼到ImageView?

在我的代碼中,我在Android應用程序中使用ZXing庫生成QR碼。而不是直接將其保存到文件中,我希望它進入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的,而不是一個文件?謝謝!

+0

寫爲位圖,而不是一個文件,然後imageView.setImageBitmap(QRBitmap) – Broak

回答

-2

至於放在附近到,

拿到目錄的圖像文件,然後在餵它:

Bitmap imageBitmap = BitmapFactory.decodeFile(path); 

那麼它的簡單

myImageView.setImageBitmap(imageBitmap); 
10

,你將需要得到BitmapBitMatrix直接在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得到位圖