Android二维码生成与扫描

来源:互联网 发布:网络质量监控技术 编辑:程序博客网 时间:2024/05/29 17:48


第三方库导入

Zxing3.1第三方库 
直接import module,将上面的第三方库导入。 

然后在guild.dradle中加入以下代码

compile project(':libzxing')

扫描二维码

直接调用代码,进入二维码扫描的界面。

private void startForQrScan() {        startActivityForResult(new Intent(xxx.this, CaptureActivity.class), 0);    }
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

扫描的结果在onActivityResult返回。

@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);        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

生成二维码

调用下面代码生成二维码图片,同时设置二维码中间的logo图标

 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);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

为了提高扫描的效果,可以将屏幕亮度设置到最亮

 WindowManager.LayoutParams lp = getWindow().getAttributes();        lp.screenBrightness = 1.0f;        getWindow().setAttributes(lp);
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

自定义扫描布局

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

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

本文首发地址链接: 
http://www.codeceo.com/article/android-qr-code-generate.html

另附demo

https://github.com/leiyaqiang/LznQRCode

0
0 0
原创粉丝点击