天天看点

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