• 欢迎访问马东东的博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Android二维码生成与扫描

Android 马 东东 来源:DevStore 3年前 (2016-05-22) 1040次浏览 1个评论 扫描二维码

第三方库导入

Zxing第三方库下载链接

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

在导入后如果用到的icon或者字符串资源名称一样,可能会报错,解决方法(以label名重复为例):

1.在Manifest标签下添加 xmlns:tools=”http://schemas.android.com/tools”

2.在Application标签下添加: tools:replace=”android:label”

扫描二维码

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

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

扫描的结果在onActivityResult返回。

1
2
3
4
5
6
7
8
9
@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图标

1
2
3
4
5
6
private void generateQr(String data) {
        int width = Tools.dip2px(this300);
        Bitmap bitmap = EncodingUtils.createQRCode(data, width, width, 
BitmapFactory.decodeResource(getResources(), R.drawable.qr_logo));
        img_qr.setImageBitmap(bitmap);
    }

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

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

自定义扫描布局

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

1
2
3
4
CaptureActivityHandler
DecodeHandler
DecodeThread
CaptureActivity

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

另一篇CSDN文章:

Android 比Zing 更快的二维码 条形码扫描Zbar


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明文章地址:https://www.madongdong.me/technology/mobile-development/android/2016/05/22/302/mdd/
喜欢 (2)
[821300079@qq.com]
分享 (0)
马 东东
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
(1)个小伙伴在吐槽
  1. 马 东东
    签到成功!签到时间:2016-05-22 22:05:00,每日打卡,生活更精彩哦~
    马 东东2016-05-22 22:07 回复 Windows 7 | Chrome 45.0.2454.101