Android开发实现二维码生成

要根据内容来实现二维码的生成,这里需要用到一个第三方的jar包(Google的开源jar包zxing.jar)

下面直接贴上我写好的最最最简单的demo

public Bitmap setCode(String contents,int width,int height){

        HashMap hints=new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET,"utf-8");    //指定字符编码为“utf-8”
        //hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);  //二维码纠错等级为中级
        hints.put(EncodeHintType.MARGIN, 1);    //设置图片的边距
        QRCodeWriter qrCodeWriter = new QRCodeWriter();//获得一个写二维码的对象
        try {
            //定义一个矩阵,接收生成的二维码,这里根据传进来的宽(width)高(height)和内容(contents)来生成二维码
            BitMatrix bitMatrix = qrCodeWriter.encode(contents, BarcodeFormat.QR_CODE,width,height,hints);
            //定义一个大小为二维码宽高的数组,画出其中每一位的颜色(画二维码)
            int[] arr = new int[width * height];
            for (int i = 0; i < height; i++) {
                for (int j = 0; j < width; j++) {
                    if (bitMatrix.get(j, i)) {
                        arr[i * width + j] = 0x00000000;
                    } else {
                        arr[i * width + j] = 0xffffffff;
                    }
                }
            }
            //使用Bitmap的createBitmap方法将arr数组创建为一个位图
            return Bitmap.createBitmap(arr,0,width,width,height,Bitmap.Config.RGB_565);
        } catch (WriterException e) {
            e.printStackTrace();
        }
        return null;
    }

在使用时,只需要调用这个方法,传入二维码的内容和宽高即可,方法返回的类型是一个位图,接收到位图后再将位图设置到图片控件上就可以看到生成的二维码了

猜你喜欢

转载自blog.csdn.net/weixin_39885435/article/details/83928444
今日推荐