2017-02-10 88 views
3

我使用Journeyapp's ZXing Android Embedded library我的Android應用程序,我可以使用下面的代碼段如何使用ZXing Library以編程方式生成自定義QR碼?

private void init() { 

     ImageView qrImageView = (ImageView) findViewById(R.id.qr_image_view); 

     qrImageView.setImageBitmap(generateQRBitMap("a")); 

    } 

    private Bitmap generateQRBitMap(final String content) { 

     Map<EncodeHintType, ErrorCorrectionLevel> hints = new HashMap<>(); 

     hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H); 

     QRCodeWriter qrCodeWriter = new QRCodeWriter(); 

     try { 
      BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, 512, 512, hints); 

      int width = bitMatrix.getWidth(); 
      int height = bitMatrix.getHeight(); 

      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); 
       } 
      } 

      return bmp; 
     } catch (WriterException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

但是生成一個簡單的二維碼,我希望能夠生成的東西一樣酷如下enter image description here給出的一個

現在我知道我可能必須爲此編寫自定義編碼器,但我真的不知道從哪裏開始。 BitMatrix類總是創建一個方形的QR碼,但是有什麼我可以用來創建奇怪的形狀?

+0

關注https://www.simplifiedcoding.net/android-qr-code-scanner-tutorial/ –

+1

不幫忙!!這顯示了ZXing的QR庫的實現,我正在尋找一個教程來教導定製 – Auro

+0

https://skrymerdev.wordpress.com/2012/09/22/qr-code-generation-with-zxing/ – jaspreet

回答

0

嘗試創建兩個QRCode。一個應該是隨機的,稱之爲A.一個應該包含數據,B.放大A,並將其扭曲(模糊會做)。創建一個對圖像形狀透明的白色矢量,並在邊緣處用白色。將此圖像疊加到QR碼A上,然後在頂部疊加B.

希望你的工作,從這樣的代碼, P

附:如果你這樣做,把它變成一個圖書館!

相關問題