This following Code gives the Bitmap Image of QRCode when User Enters Text/PhoneNumber/Url:
---------------------------------------QRCodeScreen.java-----------------------------------
public class QRCodeScreen extends MainScreen implements FieldChangeListener
{
private static final int BARCODE_WIDTH=250;
private Font font=Font.getDefault().derive(Font.BOLD|Font.ITALIC, 20);
private BitmapField barcodeImage;
public BasicEditField enterText;
public ButtonField create;
public QRCodeScreen()
{
createGUI();
}
private void createGUI()
{
barcodeImage=new BitmapField(new Bitmap(BARCODE_WIDTH, BARCODE_WIDTH),FIELD_HCENTER);
barcodeImage.setBorder(BorderFactory.createBevelBorder(new XYEdges(2, 2, 2, 2)));
add(barcodeImage);
LabelField label=new LabelField("Enter Any Text/URL/Phone Number/SMS",Field.NON_FOCUSABLE);
label.setFont(font);
label.setPadding(5, 0, 5, 0);
add(label);
enterText=new BasicEditField("", "",250,BasicEditField.FOCUSABLE);
enterText.setFont(font);
add(enterText);
create=new ButtonField("Create BarCode",FIELD_HCENTER);
create.setPadding(5, 0, 0, 0);
create.setFont(font);
create.setChangeListener(this);
add(create);
}
public void fieldChanged(Field field, int context)
{
if(field==create)
{
if(enterText.getText().equals(""))
{
QRCodeStartUp.errorHandling("Please Enter Data");
}
else
{
generateQRCode();
}
}
}
private void generateQRCode()
{
try
{
QRCode qrCode=new QRCode();
Encoder.encode(enterText.getText(), ErrorCorrectionLevel.L, qrCode);
ByteMatrix barcode=qrCode.getMatrix();
Bitmap bitmap=BarcodeBitmap.createBitmap(barcode, BARCODE_WIDTH);
barcodeImage.setBitmap(bitmap);
enterText.setText("");
}
catch (Exception e)
{
QRCodeStartUp.errorHandling("Exception: "+e.getMessage());
}
}
protected boolean onSavePrompt()
{
return true;
}
}
---------------------------------------QRCodeScreen.java-----------------------------------
public class QRCodeScreen extends MainScreen implements FieldChangeListener
{
private static final int BARCODE_WIDTH=250;
private Font font=Font.getDefault().derive(Font.BOLD|Font.ITALIC, 20);
private BitmapField barcodeImage;
public BasicEditField enterText;
public ButtonField create;
public QRCodeScreen()
{
createGUI();
}
private void createGUI()
{
barcodeImage=new BitmapField(new Bitmap(BARCODE_WIDTH, BARCODE_WIDTH),FIELD_HCENTER);
barcodeImage.setBorder(BorderFactory.createBevelBorder(new XYEdges(2, 2, 2, 2)));
add(barcodeImage);
LabelField label=new LabelField("Enter Any Text/URL/Phone Number/SMS",Field.NON_FOCUSABLE);
label.setFont(font);
label.setPadding(5, 0, 5, 0);
add(label);
enterText=new BasicEditField("", "",250,BasicEditField.FOCUSABLE);
enterText.setFont(font);
add(enterText);
create=new ButtonField("Create BarCode",FIELD_HCENTER);
create.setPadding(5, 0, 0, 0);
create.setFont(font);
create.setChangeListener(this);
add(create);
}
public void fieldChanged(Field field, int context)
{
if(field==create)
{
if(enterText.getText().equals(""))
{
QRCodeStartUp.errorHandling("Please Enter Data");
}
else
{
generateQRCode();
}
}
}
private void generateQRCode()
{
try
{
QRCode qrCode=new QRCode();
Encoder.encode(enterText.getText(), ErrorCorrectionLevel.L, qrCode);
ByteMatrix barcode=qrCode.getMatrix();
Bitmap bitmap=BarcodeBitmap.createBitmap(barcode, BARCODE_WIDTH);
barcodeImage.setBitmap(bitmap);
enterText.setText("");
}
catch (Exception e)
{
QRCodeStartUp.errorHandling("Exception: "+e.getMessage());
}
}
protected boolean onSavePrompt()
{
return true;
}
}
Good job,you are amazing.I decide to generate QRCode in android of my Blackberry use the following code you give.
ReplyDeleteBy the way,I have a Blackberry Curve and want to scan a QR code containing a web address. I cannot use Blackberry App World as it has never worked correctly on my phone. I read somewhere that the Blackberry already has some way of reading a QR code installed on it without having to download any new software.Can you help?