Coding examples
Packagecom.wolf_pan.qrcodesample;ImportAndroid.graphics.Bitmap;ImportAndroid.graphics.Color;ImportAndroid.os.Bundle;Importandroid.support.annotation.Nullable;Importandroid.support.v7.app.AppCompatActivity;ImportAndroid.util.Log;ImportAndroid.view.View;ImportAndroid.widget.EditText;ImportAndroid.widget.ImageView;Importandroid.widget.LinearLayout;ImportCom.google.zxing.BarcodeFormat;ImportCom.google.zxing.EncodeHintType;Importcom.google.zxing.WriterException;ImportCom.google.zxing.common.BitMatrix;ImportCom.google.zxing.qrcode.QRCodeWriter;ImportJava.util.HashMap; Public classEncodingsampleactivityextendsappcompatactivity {PrivateLinearLayout encodingsamplelinearlayout; PrivateEditText Texttoencodeedittext; PrivateImageView Encodedimageview; Private FinalString tag = "Encodingsampleactivity"; @Overrideprotected voidonCreate (@Nullable Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (r.layout.activity_encoding_sample); Encodingsamplelinearlayout=Findviewbyid (r.id.encodingsamplelinearlayout); Texttoencodeedittext=Findviewbyid (R.id.texttoencodeedittext); Encodedimageview=Findviewbyid (R.id.encodedimageview); Findviewbyid (R.id.encodebutton). Setonclicklistener (NewView.onclicklistener () {@Override Public voidOnClick (View v) {String contents=Texttoencodeedittext.gettext (). toString (); if(Contents.isempty ()) Contents= "Enter text to encode here"; Try { intwidth = encodingsamplelinearlayout.getwidth ()-height =width; HashMap<encodehinttype, string> hints =NewHashmap<>(); Hints.put (Encodehinttype.character_set,"UTF-8"); Bitmatrix Bitmatrix=NewQrcodewriter (). Encode (contents, barcodeformat.qr_code, width, height, hints); int[] Colors =New int[Width *height]; for(inty = 0; Y < height; ++y) { for(intx = 0; x < width; ++x) colors[width* y + x] = Bitmatrix.get (x, y)?Color.RED:Color.WHITE; } Bitmap Qrcodebitmap=Bitmap.createbitmap (colors, width, height, Bitmap.Config.RGB_565); Encodedimageview.setimagebitmap (QRCODEBITMAP); } Catch(Writerexception ex) {LOG.E (tag,"Ex:" +ex); } } }); }}
decoding example
Packagecom.wolf_pan.qrcodesample;ImportAndroid.graphics.Bitmap;Importandroid.graphics.BitmapFactory;ImportAndroid.os.Bundle;Importandroid.support.annotation.Nullable;Importandroid.support.v7.app.AppCompatActivity;ImportAndroid.util.Log;ImportAndroid.view.View;ImportAndroid.widget.ImageView;ImportAndroid.widget.TextView;ImportCom.google.zxing.BinaryBitmap;ImportCom.google.zxing.RGBLuminanceSource;ImportCom.google.zxing.common.HybridBinarizer;ImportCom.google.zxing.qrcode.QRCodeReader;Importjava.io.IOException; Public classDecodingsampleactivityextendsappcompatactivity { PublicImageView Qrcodetodecodeimageview; PublicTextView Decodedtextview; PrivateBitmap Bitmap; Private FinalString tag = "Decodingsampleactivity"; @Overrideprotected voidonCreate (@Nullable Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (r.layout.activity_decoding_sample); Qrcodetodecodeimageview=Findviewbyid (R.id.qrcodetodecodeimageview); Decodedtextview=Findviewbyid (R.id.decodedtextview); Findviewbyid (R.id.decodebutton). Setonclicklistener (NewView.onclicklistener () {@Override Public voidOnClick (View v) {Try { intwidth = bitmap.getwidth (), height =bitmap.getheight (); int[] pixels =New int[Width *height]; Bitmap.getpixels (Pixels,0, Width, 0, 0, width, height); String Decoded=NewQrcodereader (). Decode (NewBinarybitmap (NewHybridbinarizer (Newrgbluminancesource (width, height, pixels))). GetText (); Decodedtextview.settext (decoded); } Catch(Exception ex) {LOG.E (tag,"Ex:" +ex); } } }); Try{bitmap= Bitmapfactory.decodestream (Getassets (). Open ("Qrcode_qq.png")); Qrcodetodecodeimageview.setimagebitmap (bitmap); } Catch(IOException ex) {LOG.E (tag,"Ex:" +ex); } }}
Using zxing to generate analytic QR code in Android development