項目中用到二維碼掃描以及生成,将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