天天看點

android 二維碼的掃描與生成

項目中用到二維碼掃描以及生成,将zxing導入項目中(import moudle)

一、掃一掃的實作

//開啟 二維碼 掃一掃
startActivityForResult(new Intent(mContext, CaptureActivity.class),Constant.SELECT_QRCODE);
           

在onActivityResult做解析操作

//Constant.SELECT_QRCODE 為标記碼,可任意值
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == Constant.SELECT_QRCODE) {
            if (resultCode == Activity.RESULT_OK) {
                String cs = data.getStringExtra("result");
                Log.e("---url->", cs);
                if (!cs.equals("") && cs != null) {
                    String userIdString = analysisUrl(cs);

                    if (userIdString != null) {
                       //TODO 這裡做跳轉操作
                       
                    } else {
                        show("解析資訊失敗");
                    }
                } else {
                    show("未收到二維碼資料");
                }
            }
         }
        }
 /**
  *解析url
  */
 private String analysisUrl(String cs) {
  String string = null;
  if (cs.startsWith("http://taikongdan.taiyiheng.com/1.0/qr?userId=")) {
            string = cs.substring("http://taikongdan.taiyiheng.com/1.0/qr?userId=".length());
        }
        return string;
    }
           

一、生成二維碼的實作

打開二維碼頁面
 Intent intent = new Intent(UserActivity.this,   App_UserQRActivity.class);
                intent.putExtra("userId", user.getUserId());
                intent.putExtra("nickName", user.getNickName());
                startActivity(intent);


這是App_UserQRActivity的核心代碼:

	//一個ImageView用于顯示二維碼圖檔
 userImageDetail = (ImageView)findViewById(R.id.user_image_detail);
 userImageDetail.setImageBitmap(QRUtils.createQRImage(url));
           
下面是布局檔案:
<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:gravity="center" >

        <ImageView
            android:id="@+id/user_image_detail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@null" />

        <TextView
            android:id="@+id/textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/user_image_detail"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:text="掃描上面的二維碼  加我好友吧"
            android:textColor="@color/text_color_black" />
    </RelativeLayout>
           

簡單的實作,zxing由于包含資源檔案不能打包成jar,是以在項目中需要導入moudle

2016年3月2日16:02:48