現時点では、これを使用して Android アプリで QR コードを生成および表示しています。
try {
BitMatrix bm = qrwriter.encode(b.toString(), BarcodeFormat.QR_CODE,
QRCODE_WIDTH, QRCODE_HEIGHT);
final Bitmap mBitmap = Bitmap.createBitmap(bm.getWidth(),
bm.getHeight(), Bitmap.Config.ARGB_4444);
for (int i = 0; i < QRCODE_HEIGHT; i++) {
for (int j = 0; j < QRCODE_WIDTH; j++) {
mBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK
: Color.WHITE);
}
}
runOnUiThread(new Runnable() {
@Override
public void run() {
imgqrcode.setImageBitmap(mBitmap);
}
});
} catch (WriterException e) {
}
問題なく動作しますが、ネストされたループを使用するのは非常に遅いです。QRCODE_WIDTH
適切な時間内に生成するには、QRCODE_HEIGHT
非常に小さな値 (高 dpi デバイスでは非常にぼやけた画像を生成する) を設定する必要があります。理想的には、デバイスの解像度を取得し、それに基づいて QR コードのサイズを決定し、常に鮮明に見えるようにしたいと考えています。
私はこれで間違ったアプローチを取っていますか? もっと速い方法はありますか?