2012-01-14 76 views

回答

4

請看android/下的zxing源代碼。在.encode包中,您將看到一個如何在Android中對QR碼進行編碼的示例。是的,你不能使用,也不需要使用BufferedImage

+0

現在,我已經成功地編碼了QR碼並將它發送給了android應用程序。然後它將它作爲BitMap對象獲取。現在我該如何解碼它? – user477519 2012-01-15 16:54:07

+1

那麼你可以看看'Detector'和'Decoder'的'.qrcode'包。但是,如果您將信息編碼爲僅將其發送到其他活動並將其解碼,那麼爲什麼不只是發送原始數據呢? – 2012-01-15 17:11:24

+0

@SeanOwen這是工作的任何文本,但如果我想編碼網址,那麼我可能需要使用相同的intent.putExtra(Intents.Encode.TYPE,Contents.Type.TEXT);因爲沒有URL的類型 – Erum 2015-01-30 07:32:47

0

最簡單的方法是google charts API。這是一個簡單的休息API,會給你一個PNG文件。如果你不希望你的應用程序需要互聯網,你可以在手上做更多的工作,但可以完成。 com.google.zxing.qrcode.encoder是將爲您生成QR的類。我從來沒有想過如何使用它們,但我認爲它會返回一個代表QR的矩陣,你必須弄清楚如何將它繪製到畫布上或其他東西。

+0

感謝蒂姆。但我不希望我的應用程序需要訪問互聯網。那麼你能否給我推薦一些有用的網址? – user477519 2012-01-14 11:59:25

8

我發現這是一個有用的http://codeisland.org/2013/generating-qr-codes-with-zxing/

使用上面的資源,我創建了一個實用的方法如下:

public static Bitmap encodeToQrCode(String text, int width, int height){ 
    QRCodeWriter writer = new QRCodeWriter(); 
    BitMatrix matrix = null; 
    try { 
     matrix = writer.encode(text, BarcodeFormat.QR_CODE, 100, 100); 
    } catch (WriterException ex) { 
     ex.printStackTrace(); 
    } 
    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, matrix.get(x,y) ? Color.BLACK : Color.WHITE); 
     } 
    } 
    return bmp; 
} 
+0

@Steve Paul會創建位圖提供的用戶字符串e/g(123 + ghnn-ggg) – Erum 2015-01-26 13:01:47

+0

嗨,Erum,是的,我已經在我的應用程序中使用它。它應該工作。 – 2015-01-26 13:05:22