1

次のコードでは、QR コードが Blackberry の画面に空白で表示されます。何が欠けているのかわかりません。正しく中央に配置された正方形が表示されますが、正方形自体は白く、中に QR コードはありません。どんな助けでも大歓迎です。ありがとう。

public QRCodeScreen(String qrCode) {
    this.qrCode = "Test String";
    qrImage = new BitmapField(new Bitmap(QRCODE_WIDTH, QRCODE_WIDTH),FIELD_HCENTER);
    qrImage.setBorder(BorderFactory.createBevelBorder(new XYEdges(2, 2, 2, 2)));

    Hashtable hintMap = new Hashtable();
    hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
    try {
        MultiFormatWriter barcodeWriter = new MultiFormatWriter();
        ByteMatrix byteMatrix = barcodeWriter.encode(this.qrCode, BarcodeFormat.QR_CODE, QRCODE_WIDTH, QRCODE_WIDTH,hintMap);

        Bitmap bitmap = BarcodeBitmap.createBitmap(byteMatrix, 256);

        qrImage.setBitmap(bitmap);
    }
    catch (Exception e) {

    }

    add(qrImage);
}

}

4

1 に答える 1

1

BlackBerry オンライン ドキュメントからこのサンプルを見てください。

上記のコードに合わせて単純に変更すると、次のようになります。

public class QRCodeScreen extends MainScreen {

   private String qrCode;
   private static final int QRCODE_WIDTH = 100;
   private BitmapField qrImage;

   public QRCodeScreen(String qrCode) { 
      this.qrCode = "Test String"; 
      qrImage = new BitmapField(new Bitmap(QRCODE_WIDTH, QRCODE_WIDTH),FIELD_HCENTER); 
      qrImage.setBorder(BorderFactory.createBevelBorder(new XYEdges(2, 2, 2, 2))); 

      try { 
         QRCode code = new QRCode();
         Encoder.encode(qrCode, ErrorCorrectionLevel.L, code);
         ByteMatrix barcode = code.getMatrix();
         Bitmap bitmap = BarcodeBitmap.createBitmap(barcode, QRCODE_WIDTH);
         qrImage.setBitmap(bitmap);         
      } 
      catch (Exception e) { 
         e.printStackTrace();
      } 

      add(qrImage); 
   } 
}

これは、6.0 9800 シミュレーターで機能します (元のコードを実行すると、説明したように空白の画像が生成されます)。

于 2012-07-31T01:48:59.773 に答える