網上雖然有很多一鍵生成二維碼的工具,但是通過代碼生成一個屬於自己的二維碼成就感也是不錯的,實現方法很簡單,需要導入第三方類庫
步驟一:導入第三方類庫文件:往Android Studio中導入第三方類庫文件
步驟二:進行xml文件布局,一個EditText用於輸入二維碼內容,一個ImageView用於顯示生成的二維碼,一個生成按鈕Button
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/ed" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="生成二維碼" /> <ImageView android:id="@+id/im" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
步驟三:在MainActivity.java文件中調用第三方類庫文件里的類和方法生成二維碼
1 package com.contentprovide.liuliu.aaa; 2 3 import android.Manifest; 4 import android.content.Intent; 5 import android.content.pm.PackageManager; 6 import android.graphics.Bitmap; 7 import android.support.v4.app.ActivityCompat; 8 import android.support.v4.content.ContextCompat; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.view.View; 12 import android.widget.Button; 13 import android.widget.EditText; 14 import android.widget.ImageView; 15 import android.widget.TextView; 16 17 import com.xys.libzxing.zxing.activity.CaptureActivity; 18 import com.xys.libzxing.zxing.decode.DecodeFormatManager; 19 import com.xys.libzxing.zxing.decode.DecodeHandler; 20 import com.xys.libzxing.zxing.encoding.EncodingUtils; 21 import com.xys.libzxing.zxing.utils.CaptureActivityHandler; 22 23 public class MainActivity extends AppCompatActivity { 24 Button btn2; 25 26 EditText ed; 27 ImageView im; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_main); 33 34 ed = (EditText) findViewById(R.id.ed); 35 im = (ImageView) findViewById(R.id.im); 36 btn2 = (Button) findViewById(R.id.btn2); 37 38 39 btn2.setOnClickListener(new View.OnClickListener() { 40 @Override 41 public void onClick(View view) { 42 String s = ed.getText().toString(); 43 try {//捕捉異常 44 Bitmap bitmap = EncodingUtils.createQRCode(s, 400, 400, null); 45 im.setImageBitmap(bitmap); 46 } catch (Exception e) { 47 48 } 49 50 } 51 }); 52 53 54 } 55 56 57 }
步驟很簡單,有這么幾步就基本實現了二維碼的生成了。