2012-01-14 35 views

Trả lời

4

Vui lòng xem mã nguồn zxing theo android/. Trong gói .encode bạn sẽ thấy ví dụ về cách mã hóa mã QR trong Android. Có, bạn không thể sử dụng và không cần sử dụng BufferedImage.

+0

Cảm ơn bạn đã mã hóa thành công mã QR và gửi nó qua ứng dụng android. Sau đó, nó được nó như là một đối tượng BitMap. Bây giờ làm thế nào để giải mã nó? – user477519

+1

Bạn có thể xem gói '.qrcode' cho' Trình tìm kiếm' và 'Bộ giải mã'. Nhưng nếu bạn đang mã hóa thông tin chỉ để gửi nó đến một hoạt động khác và giải mã nó ... tại sao không chỉ gửi dữ liệu gốc? –

+0

@SeanOwen này đang làm việc cho bất kỳ văn bản nhưng nếu tôi muốn mã hóa url sau đó tôi có thể cần phải sử dụng cùng một intent.putExtra (Intents.Encode.TYPE, Contents.Type.TEXT); vì không có Loại cho URL – Erum

0

Cách dễ nhất là google charts API. Nó là một API phần còn lại đơn giản sẽ cung cấp cho bạn một tệp png. Nếu bạn không muốn ứng dụng của mình yêu cầu internet, bạn có nhiều công việc hơn trên tay, nhưng nó có thể được thực hiện. com.google.zxing.qrcode.encoder là các lớp sẽ tạo QR cho bạn. Tôi không bao giờ tìm ra chính xác làm thế nào để sử dụng chúng, nhưng tôi nghĩ rằng nó trả về một ma trận đại diện cho QR, bạn sẽ phải làm việc ra làm thế nào để vẽ nó vào một khung hoặc một cái gì đó.

+0

Cảm ơn Tim. Nhưng tôi không muốn ứng dụng của tôi yêu cầu truy cập internet. Vậy bạn có thể gợi ý cho tôi bất kỳ URL hữu ích nào không? – user477519

8

Tôi thấy điều này là một hữu ích http://codeisland.org/2013/generating-qr-codes-with-zxing/

Sử dụng tài nguyên ở trên, tôi đã tạo ra một phương pháp hữu ích như sau:

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 nó sẽ tạo bitmap của chuỗi cung cấp người dùng e/g (123 + ghnn-ggg) – Erum

+0

Xin chào Erum, vâng tôi đã sử dụng nó trong ứng dụng của mình. Nó sẽ hoạt động. –

Các vấn đề liên quan