Как кодировать строку в QR-код, используя zxing на Android? - PullRequest
5 голосов
/ 14 января 2012

Я пытаюсь сгенерировать QR-код с помощью Zxing на Android.Поскольку java.awt.image.BufferedImage не включен в Android, я не уверен, как создать изображение QR-кода на Android.

РЕДАКТИРОВАТЬ: я не хочу, чтобы моему приложению требовался доступ к Интернету.

Ответы [ 3 ]

8 голосов
/ 19 ноября 2014

Я нашел это полезным 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;
}
4 голосов
/ 14 января 2012

Пожалуйста, посмотрите исходный код zxing под android/.В пакете .encode вы увидите пример того, как именно кодировать QR-код в Android.Да, вы не можете использовать и не должны использовать BufferedImage.

0 голосов
/ 14 января 2012

Самый простой способ - это API Google Maps . Это простой API отдыха, который даст вам файл PNG. Если вы не хотите, чтобы ваше приложение требовало интернета, у вас есть больше работы, но это можно сделать. com.google.zxing.qrcode.encoder - это классы, которые сгенерируют для вас QR. Я никогда не понимал, как именно их использовать, но я думаю, что он возвращает матрицу, которая представляет QR, вам нужно решить, как нарисовать его на холсте или что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...