Android二维码生成与扫描

2016/04/27 Android

本文介绍使用Zxing3.1第三方库,完成二维码的生成与扫描。

第三方库导入

Zxing3.1第三方库 直接import module,将上面的第三方库导入。 在导入后如果用到的icon或者字符串资源名称一样,可能会报错,解决方法(以label名重复为例): 1.在Manifest标签下添加 xmlns:tools=”http://schemas.android.com/tools” 2.在Application标签下添加tag: tools:replace=”android:label”

扫描二维码

直接调用代码,进入二维码扫描的界面。 java private void startForQrScan() { startActivityForResult(new Intent(xxx.this, CaptureActivity.class), 0); } 扫描的结果在onActivityResult返回。 java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK){ Bundle bundle = data.getExtras(); String result = bundle.getString("result"); L.d("result: " + result); } } ## 生成二维码 调用下面代码生成二维码图片,同时设置二维码中间的logo图标 ```java private void generateQr(String data) { int width = Tools.dip2px(this, 300); Bitmap bitmap = EncodingUtils.createQRCode(data, width, width, BitmapFactory.decodeResource(getResources(), R.drawable.qr_logo)); img_qr.setImageBitmap(bitmap); }

为了提高扫描的效果,可以将屏幕亮度设置到最亮
```java
 WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 1.0f;
        getWindow().setAttributes(lp);

## 自定义扫描布局 直接调用上面扫描的代码,界面布局是固定的,如果想自定义布局,例如在扫描框下显示文字或者其他输入框之类的,可以将以下几个文件拷出,简单修改下,即可自己定义布局并增加其他功能。 CaptureActivityHandler DecodeHandler DecodeThread CaptureActivity

至此,二维码扫描及生成功能就集成到我们的APP中了,是不是很简单~

Search

    Table of Contents