Zxing生成二维码和添加Logo
2017-04-20 14:11
399 查看
1.一个项目开始,都需要做准备,准备一个Zxing。jar包来支撑生成二维码
接下来直接上代码,
生成普通二维码
先写一个生成二维码的方法
2.。。。。生成带logo的二维码
在以上的基础上,在添加一个生成logo的方法
接下来直接上代码,
生成普通二维码
先写一个生成二维码的方法
//生成二维码 private Bitmap generateBitmap(String content, int width, int height) { //生成二维码的写对象 QRCodeWriter qrCodeWriter=new QRCodeWriter(); //定义集合 Map<EncodeHintType,String> hints=new HashMap<>(); //添加元素,元素为编码格式 hints.put(EncodeHintType.CHARACTER_SET,"utf-8"); //生成二维码的内容 try { BitMatrix encode=qrCodeWriter.encode(content, BarcodeFormat.QR_CODE,width,height); int[] pixels=new int[width*height]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (encode.get(j, i)) { pixels[i * width + j] = 0x00000000; } else { pixels[i * width + j] = 0xffffffff; } } } //返回生成的二维码 return Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.RGB_565); } catch (WriterException e) { e.printStackTrace(); } return null; } 接下来在定义一个空的Bitmap对象
Bitmap bitmap = null; 在嗯纽的监听中调用方法,把返回的值放到ImageView上
//生成二维码 bitmap = generateBitmap("http://blog.csdn.net/yanzhenjie1003/article/details/52503533", 400, 400); iv.setImageBitmap(bitmap);
2.。。。。生成带logo的二维码
在以上的基础上,在添加一个生成logo的方法
//添加logo图标 private Bitmap addLogo(Bitmap qrBitmap, Bitmap logoBitmap) { //得到图片和logo的大小 int qrBitmapWidth = qrBitmap.getWidth(); int qrBitmapHeight = qrBitmap.getHeight(); int logoBitmapWidth = logoBitmap.getWidth(); int logoBitmapHeight = logoBitmap.getHeight(); //得到图片的大小,生成画布的大小 Bitmap blankBitmap = Bitmap.createBitmap(qrBitmapWidth, qrBitmapHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(blankBitmap); canvas.drawBitmap(qrBitmap, 0, 0, null); //画一个正方形 canvas.save(Canvas.ALL_SAVE_FLAG); //一系列的运算 float scaleSize = 1.0f; while ((logoBitmapWidth / scaleSize) > (qrBitmapWidth / 5) || (logoBitmapHeight / scaleSize) > (qrBitmapHeight / 5)) { scaleSize *= 2; } float sx = 1.0f / scaleSize; canvas.scale(sx, sx, qrBitmapWidth / 2, qrBitmapHeight / 2); canvas.drawBitmap(logoBitmap, (qrBitmapWidth - logoBitmapWidth) / 2, (qrBitmapHeight - logoBitmapHeight) / 2, null); canvas.restore(); //返回带有图标的logo return blankBitmap; }把监听中的代码改变为
//生成自定义的二维码 //先生成二维码 bitmap = generateBitmap("http://blog.csdn.net/yanzhenjie1003/article/details/52503533", 400, 400); //添加logo //先得到一个logo图标 Bitmap logoBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); //把logo添加到二维码上 Bitmap customBitmap = addLogo(bitmap, logoBitmap); iv.setImageBitmap(customBitmap);
相关文章推荐
- 使用Zxing生成二维码,以及在生成的二维码中添加logo
- Android:使用ZXing生成二维码(支持添加Logo图案)
- 使用谷歌zxing工具生成二维码(可添加logo)
- 用ZXING生成二维码的工具类(可以去掉白边,添加logo)
- Java 利用google.zxing类生成的BitMatrix二维码添加logo图标
- Android中使用ZXing生成二维码(支持添加Logo图案)
- Android:使用ZXing生成二维码(支持添加Logo图案)
- Zxing.jar生成带有logo的二维码
- 随手记一次利用开源zxing生成带嵌入logo的二维码图片
- Jquery.Qrcode在客户端动态生成二维码并添加自定义Logo
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(一)
- Android利用ZXing生成带LOGO的二维码图片
- Zxing生产二维码 附带添加logo
- Zxing和QR CODE 生成与解析二维码实例(带logo篇)
- java使用zxing生成带logo的二维码图片
- 利用Zxing生成带LOGO 的二维码图片
- 利用ZXing生成带LOGO的二维码图片
- ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果
- Java+zxing生成二维码(带logo和不带logo)
- ZXing生成和解析带LOGO的二维码