1. lib:http://www.swetake.com/qr/index-e.html
(Qrcode_java0.50beta10.tar\qrcode_java0.50beta10\qrcode_java0.50beta10\lib\qrcode.jar)
2. Code:
Package Com.qrcode.encoder.qrcodeencoder;import Java.io.unsupportedencodingexception;import android.app.Activity; Import Android.graphics.canvas;import Android.graphics.color;import Android.graphics.paint;import Android.graphics.rect;import Android.os.bundle;import Android.util.displaymetrics;import Android.util.Log;import Android.view.surfaceholder;import Android.view.surfaceview;import Android.view.view;import Android.view.view.onclicklistener;import Android.widget.button;import Android.widget.edittext;import Com.swetake.util.qrcode;public class Mainactivity extends Activity implements Surfaceholder.callback{private final static String TAG = "QRCode";p rivate surfaceview msurfaceview;private surfaceholder msurfaceholder;private EditText Metinput;private Button mbtnencode; @Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (R.layout.activity_main); LOG.E (TAG, "onCreate");D isplaymetrics mdisplaymetrics = new Displaymetrics (); GetwinDowmanager (). Getdefaultdisplay (). Getmetrics (mdisplaymetrics); Msurfaceview = (Surfaceview) findViewById (R.id.sv_ QRCode); msurfaceholder = Msurfaceview.getholder (); Msurfaceholder.addcallback (this); metinput = (EditText) Findviewbyid (r.id.et_input); Mbtnencode = (Button) Findviewbyid (R.id.btn_encode); Mbtnencode.setonclicklistener (new Onclicklistener () {@Overridepublic void OnClick (View arg0) {log.e (TAG, "Mbtnencode OnClick"); ENCODEQR ( Metinput.gettext (). toString (), 7);}}); protected void Encodeqr (String str, int version) {LOG.E (TAG, "ENCODEQR"); QRCode Mqrcode = new QRCode (); Mqrcode.setqrcodeerrorcorrect (' M '); Mqrcode.setqrcodeencodemode (' B '); Mqrcode.setqrcodeversion (version); try {byte[] bytesencoding = str.getbytes ("Utf-8"); if (bytesencoding.length>0 && bytesencoding.length<120) {boolean[][] bencoding = Mqrcode.calqrcode (bytesencoding);d Rawqrcode ( Bencoding, Color.Black);}} catch (Unsupportedencodingexception e) {e.printstacktrace ();}} private void Drawqrcode (boolean[][] brect, int colorFill) {LOG.E (TAG, "Drawqrcode"); int mpadding = 40;int Mlength = 20; Canvas Mcanvas = Msurfaceholder.lockcanvas (); Mcanvas.drawcolor (Color.White); Paint Mpaint = new paint (); Mpaint.setstyle (Paint.Style.FILL); Mpaint.setcolor (Colorfill); Mpaint.setstrokewidth (1.0F ); for (int i=0;i<brect.length;i++) {for (int j=0;j<brect.length;j++) {if (Brect[j][i]) {mcanvas.drawrect (new Rect (mpadding+j*mlength,mpadding+i*mlength,mpadding+j*mlength+mlength,mpadding+i*mlength+mlength), mPaint);}}} Msurfaceholder.unlockcanvasandpost (Mcanvas);} @Overridepublic void surfacechanged (Surfaceholder arg0, int arg1, int arg2, int arg3) {log.e (TAG, "surfacechanged");} @Overridepublic void surfacecreated (Surfaceholder arg0) {log.e (TAG, "surfacecreated");} @Overridepublic void surfacedestroyed (Surfaceholder arg0) {log.e (TAG, "surfacedestroyed");}}
Layout:
<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http// Schemas.android.com/tools "android:layout_width=" match_parent "android:layout_height=" Match_parent "Tools:context = "${relativepackage}.${activityclass}" > <edittext android:id= "@+id/et_input" android:layout_alignparenttop = "true" android:layout_width= "Match_parent" android:layout_height= "wrap_content" android:text= "/> ; <surfaceview android:id= "@+id/sv_qrcode" android:layout_below= "@id/et_input" android:layout_centerhorizontal= " True "android:layout_centervertical=" true "android:layout_width=" Wrap_content "android:layout_height=" Wra P_content "/> <button android:id=" @+id/btn_encode "android:layout_width=" Wrap_content "a ndroid:layout_height= "Wrap_content" android:layout_alignparentbottom= "true" android:layout_centerhorizontal= "True" android:text= "@strIng/encode "/></relativelayout>
Manifest:
<?xml version= "1.0" encoding= "Utf-8"? ><manifest xmlns:android= "http://schemas.android.com/apk/res/ Android " package=" Com.qrcode.encoder.qrcodeencoder " android:versioncode=" 1 " android:versionname=" 1.0 "> <uses-sdk android:minsdkversion=" 8 " android:targetsdkversion="/> < Application android:allowbackup= "true" android:icon= "@drawable/ic_launcher" android:label= "@string /app_name "> <activity android:name=". Mainactivity " android:label=" @string/app_name "> <intent-filter> <action android:name = "Android.intent.action.MAIN"/> <category android:name= "Android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>
QR Code Encoder