第三方开源库:Zxing实现扫描和生成二维码

使用BarCodeTest库文件 + zxing.jar 实现扫描和生成二维码的操作。

Demo:http://download.csdn.net/detail/ss1168805219/9495904

效果图:


需要:

library:    BarCodeTest

zxing.jar 

配置AndroidManifest.xml


1 导入BarCodeTest(见demo),并作为项目的依赖库,添加zxing.jar 到libs目录,

   配置AndroidManifest.xml

<span style="font-size:12px;">    <!-- zxing权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" /></span>


<span style="font-size:12px;">        <!--  注册activity-->
        <activity
            android:name="com.zxing.activity.CaptureActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden" >
        </activity></span>


布局预览



2 扫描:

实现扫描:

	public void scan() {
		tv = (TextView) findViewById(R.id.tv);
		Button btn1 = (Button) findViewById(R.id.btn1);
		btn1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(context, CaptureActivity.class);
				startActivityForResult(intent, 0);
			}
		});
	}
要注册activity

获取返回数据

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK) {
			String result = data.getExtras().getString("result");
			tv.setText(result);
		}
	}

3 生成二维码

	public void generate() {
		iv = (ImageView) findViewById(R.id.iv);
		btn2 = (Button) findViewById(R.id.btn2);
		et = (EditText) findViewById(R.id.et);

		et.addTextChangedListener(new TextWatcher() {

			private String str2;

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				str2 = s.toString();
				btn2.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						if (TextUtils.isEmpty(str2)) {
							Toast.makeText(context, "请输入内容", 0).show();
						} else {
							try {
								Bitmap bitmap = EncodingHandler.createQRCode(
										str2, 300);
								iv.setImageBitmap(bitmap);
							} catch (WriterException e) {
								e.printStackTrace();
							}
						}
					}
				});
			}
		});
	}















  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值