生成二维码效果:

1:导入zxing依赖

implementation 'com.google.zxing:core:3.3.0'

2: 导入一个工具类,直接复制就可以注意包名

package com.example.xch.scanzbar.zbar.utils;import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.text.TextUtils;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;import java.util.Hashtable;
/*** Created by wangjie on 2019/4/2.*/public class ZXingUtils {/**b* 生成简单二维码** @param content                字符串内容* @param width                  二维码宽度* @param height                 二维码高度* @param character_set          编码方式(一般使用UTF-8)* @param error_correction_level 容错率 L:7% M:15% Q:25% H:35%* @param margin                 空白边距(二维码与边框的空白区域)* @param color_black            黑色色块* @param color_white            白色色块* @return BitMap*/public static Bitmap createQRCodeBitmap(String content, int width,int height,String character_set,String error_correction_level,String margin,int color_black, int color_white) {// 字符串内容判空if (TextUtils.isEmpty(content)) {return null;}// 宽和高>=0if (width < 0 || height < 0) {return null;}try {/** 1.设置二维码相关配置 */Hashtable<EncodeHintType, String> hints = new Hashtable<>();// 字符转码格式设置if (!TextUtils.isEmpty(character_set)) {hints.put(EncodeHintType.CHARACTER_SET, character_set);}// 容错率设置if (!TextUtils.isEmpty(error_correction_level)) {hints.put(EncodeHintType.ERROR_CORRECTION, error_correction_level);}// 空白边距设置if (!TextUtils.isEmpty(margin)) {hints.put(EncodeHintType.MARGIN, margin);}/** 2.将配置参数传入到QRCodeWriter的encode方法生成BitMatrix(位矩阵)对象 */BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);/** 3.创建像素数组,并根据BitMatrix(位矩阵)对象为数组元素赋颜色值 */int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {//bitMatrix.get(x,y)方法返回true是黑色色块,false是白色色块if (bitMatrix.get(x, y)) {pixels[y * width + x] = color_black;//黑色色块像素设置} else {pixels[y * width + x] = color_white;// 白色色块像素设置}}}/** 4.创建Bitmap对象,根据像素数组设置Bitmap每个像素点的颜色值,并返回Bitmap对象 */Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;} catch (WriterException e) {e.printStackTrace();return null;}}/*** 添加Logo* @param src 二维码bitmap* @param logo 图片bitmap* @return*/public static Bitmap addLogo(Bitmap src, Bitmap logo) {//如果原二维码为空,返回空if (src ==null ) {return null;}//如果logo为空,返回原二维码if (src ==null ||logo ==null) {return src;}//这里得到原二维码bitmap的数据int srcWidth = src.getWidth();int srcHeight = src.getHeight();//logo的Width和Heightint logoWidth = logo.getWidth();int logoHeight = logo.getHeight();//同样如果为空,返回空if (srcWidth == 0 || srcHeight == 0) {return null;}//同样logo大小为0,返回原二维码if (logoWidth == 0 || logoHeight == 0) {return src;}//logo大小为二维码整体大小的1/5,也可以自定义多大,越小越好//二维码有一定的纠错功能,中间图片越小,越容易纠错float scaleFactor = srcWidth * 1.0f / 5 / logoWidth;Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);try {Canvas canvas = new Canvas(bitmap);canvas.drawBitmap(src, 0, 0, null);canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2);canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2,null );canvas.save(Canvas.ALL_SAVE_FLAG);canvas.restore();} catch (Exception e) {bitmap = null;e.getStackTrace();}return bitmap;}}

3:布局文件一个EditText和一个button按钮还有一个显示二维码的Imageview

 <ImageViewandroid:layout_width="200dp"android:layout_height="200dp"android:id="@+id/img"/>

4:Activity调用

     Bitmap h = ZXingUtils.createQRCodeBitmap("二维码生成文本", 800, 800, "UTF-8", "H", "1", Color.BLACK, Color.WHITE);Bitmap bitmap = ZXingUtils.addLogo(h, BitmapFactory.decodeResource(getResources(), R.drawable.logo));img.setImageBitmap(bitmap);

android Zxing二维码生成带Logo相关推荐

  1. zxing 二维码、带logo二维码生成

    <span style="font-size:18px;">普通二维码生成</span> <span style="font-size:18 ...

  2. iOS二维码生成(带logo)

    实在不好意思,昨天忘记写的<<二维码生成>>忘记写最常见的黑白二维码嵌入一张图片,一般都是公司的logo.今天补上 // // ViewController.m // 内置图片 ...

  3. Marco's Java【小工具篇 之 Google Zxing 二维码生成】

    前言 二维码相信大家一定不陌生啦,去菜市场买菜,路边摊买个小吃都可以扫一扫,近几年来中国的二维码技术的普及也是大家有目共睹的,而二维码在其他国家虽然有用到,但极少,更没有说全国普及. 二维码又称二维条 ...

  4. ZXing生成条形码、二维码、带logo二维码

    采用的是开源的ZXing,Maven配置如下,jar包下载地址,自己选择版本下载,顺便推荐下Maven Repository <!-- https://mvnrepository.com/art ...

  5. 二维码(带Logo)加密解密-ZXing方式

    二维码(带Logo)加密解密-ZXing方式 ZXing生成和解析二维码的流程步骤在代码的注解里面. 二维码的加密解密工具类 /** * Copyright © 2020wangylCompany. ...

  6. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码

    Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo

  7. qrcode 生成二维码,带logo 带文字描述

    qrcode 生成二维码 1.引入 pom.xml 2. ResourceRenderer 3. QRCodeUtil 4. QRCodeController 5. HTML 6. 测试 1.引入 p ...

  8. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  9. ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多,当然也可以对二维码进行处理,效果个人 ...

最新文章

  1. 中国如何成为一流国家
  2. selenium中webdriver跳转新页面后定位置新页面的两种方式
  3. Android 获取存储卡路径和空间使用情况
  4. 有点火的程序秒收录牛X
  5. 免费linux 脚本,替换xshell,说一下一些免费的shell工具
  6. pandas数据处理、绘图
  7. robotframework自动化测试修炼宝典_软件测试工程师必备:Robot Framework实现接口自动化实践!...
  8. 测绘 绘图 计算机,20 机械测绘与计算机绘图 草图绘制范例 课件:草图绘制范例.pptx...
  9. Nano板使用USB与PX4通信
  10. 虎牙不想做一家游戏直播公司
  11. SMT操作员是做什么的?工作职责?
  12. 在Ubuntu下登录qq的时候显示“您已登录xxxxx,不能重复登录”
  13. CentOS7防火墙放行端口
  14. Fedora 10 下载地址
  15. pdf转jpg在线转换免费
  16. .Net Core DI依赖注入:一个接口注入多个实现类
  17. 电脑批量加入域控制器脚本
  18. 国外酷站设计:15个带给你灵感的作品集网站
  19. web方向是.NET好还是java好_C#和.NET向JAVA好转吗?
  20. nvm最全面的下载安装教程

热门文章

  1. ArcBall二维控制三维旋转
  2. 线性回归推导(二)--求闭式解法及纯python实现
  3. 5G通信面临的困难挑战及解决方案有哪些?
  4. 七巧板的思考之程序的根本
  5. 线段的重叠与不重叠问题
  6. user版本如何打开root权限
  7. C++编程面向对象2020年重庆新冠肺炎信息统计
  8. MFC在内存DC中绘图
  9. 谷歌浏览器下禁止浏览器自动代理http图片到https
  10. mfc 操作word2007