可以使用Zxing来获得条形码的bitmap.
1.绘制带有文字的条形码
由于直接不能绘制出带有文字的条形码.
我想到的解决方案是 需要绘制的条形码的高度的 3/4给条形码 1/4给文本.
先绘制条形码 得到bitmap 在创建bitmap 在底部绘制文字,合并两个bitmap.2.绘制不带文字的条形码,只需要把绘制文本和bigbitmap去掉就行了.3.使用代码需要先引入Zxing库import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.yiersan.wmsclient.utils.LogUtil;import java.util.EnumMap;
import java.util.Map;/*** 使用Zxing生成二维码*/
public class Barcode {private static final int WHITE = 0xFFFFFFFF;private static final int BLACK = 0xFF000000;/**** @param content 文本内容* @param qrWidth 条形码的宽度* @param qrHeight 条形码的高度* @return bitmap*/public static Bitmap getBarcodeBitmap(String content, int qrWidth, int qrHeight) {content = content.trim();//文字的高度int mHeight = qrHeight / 4;try {Map<EncodeHintType, Object> hints = new EnumMap(EncodeHintType.class);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);hints.put(EncodeHintType.MARGIN, 1);BitMatrix result;try {result = new MultiFormatWriter().encode(content, BarcodeFormat.CODE_128, qrWidth, mHeight * 3, hints);} catch (IllegalArgumentException iae) {return null;}int width = result.getWidth();int height = result.getHeight();int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {int offset = y * width;for (int x = 0; x < width; x++) {pixels[offset + x] = result.get(x, y) ? BLACK : 0;}}Bitmap qrBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);qrBitmap.setPixels(pixels, 0, width, 0, 0, width, height);//大的bitmapBitmap bigBitmap = Bitmap.createBitmap(width, qrHeight, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bigBitmap);Rect srcRect = new Rect(0, 0, width, height);Rect dstRect = new Rect(0, 0, width, height);canvas.drawBitmap(qrBitmap, srcRect, dstRect, null);Paint p = new Paint();p.setColor(Color.BLACK);p.setFilterBitmap(true);//字体大小p.setTextSize(mHeight);//开始绘制文本的位置canvas.translate(width / 2, mHeight);p.setTextAlign(Paint.Align.CENTER);canvas.drawText(content, 0, content.length(), 0, height, p);return bigBitmap;} catch (Exception e) {return null;}}
}

Android 生成条形码 生成下方带文本的条形码相关推荐

  1. vue 生成二维码(带logo)与条形码

    1.生成二维码安装 npm install  --save qrcodejs 实现代码 <template><div><qrcode :url="jmc&quo ...

  2. asp.net 生成二维码,带logo,带下方文字

    目标可以生成带网址的信息的二维码,可以是带logo 或者不带logo,或者下方带一行说明文字 nuget 下载二维码管理包 public static Bitmap GenerateQrCode(st ...

  3. Java条形码生成-Barcode4j

    背景 目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别. 而用于生产环境的条形码技术仍然存在,如硬件设备制造.供应.物流运输等等. 在常见的产品信息管 ...

  4. Android 扫描、生成、识别二维码、条码 一库搞定

    他来了,他来了,他带着YXing走来了. YXing 集成了CameraX + zxing, 简洁调用,功能完善,自定义扫码界面,再也不用像以前一样cv一堆冗余的Camera代码进项目了. 怎么集成: ...

  5. 条形码生成工具类实现

    1.pom引用: <!-- 条形码工具类 --> <dependency><groupId>com.google.zxing</groupId>< ...

  6. android 解析、生成二维码

    android 解析.生成二维码 (1)ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台 ...

  7. Java条形码生成技术-Barcode4j

    背景 目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别. 而用于生产环境的条形码技术仍然存在,如硬件设备制造.供应.物流运输等等. 在常见的产品信息管 ...

  8. android studio 混淆jar,android studio如何生成混淆代码的jar

    释放双眼,带上耳机,听听看~! 今天,简单讲讲android里如何在生成jar包时,同时对jar包的代码进行混淆,避免别人看到核心代码. 之前,我对领导说我打包生成的SDK,别人使用android s ...

  9. android studio如何生成混淆代码的jar

    今天,简单讲讲android里如何在生成jar包时,同时对jar包的代码进行混淆,避免别人看到核心代码. 之前,我对领导说我打包生成的SDK,别人使用android studio导入后可以看所有的源码 ...

最新文章

  1. 【云周刊】第146期:史上最大规模人机协同的双11,12位技术大V揭秘背后黑科技...
  2. 密恐警告:超2000万张,全球最大的人眼图像数据集开源了
  3. openresty开发系列39--nginx+lua实现接口签名安全认证
  4. ActiveMQ与spring整合
  5. c/c++整理--析构函数
  6. 十四.激光和惯导LIO-SLAM框架学习之惯导内参标定
  7. flex布局,属性用法
  8. Html 小插件4 百度搜索代码
  9. 不愧是我,短短10分钟就为公司省下了几万块 ( ー̀◡ー́ )
  10. 解压版tomcat安装配置
  11. 关于ps cs6的滤镜 (抽出)
  12. 百度地图迁徙大数据_百度地图迁徙大数据:北上广深城内出行年后首次大幅增长...
  13. 数据迁移方案-云迁移
  14. 听见丨谷歌DeepMind科学家黄士杰:已离开AlphaGo团队AI芯片初创团队ThinkForce完成4.5亿元A轮融资
  15. 一月到十二月的英文简写和英文单词
  16. 100+个数据分析常用指标和术语
  17. 并查集(详细解释+完整C语言代码)
  18. firebase使用_这就是我希望在开始使用Firebase之前所要知道的
  19. 通过SE14重建数据库表
  20. MATLAB基于多目标算法的冷热电联供型综合能源系统运行优化

热门文章

  1. 通过css样式禁用NG-ZORRO中Calendar日历组件头部下拉框的选择事件
  2. 短视频针对-人性的弱点,40个人性弱点
  3. YOLOv8来啦 | 详解YOLOv8改进!YOLOv5官方出品,必卷!
  4. IT小学员的避雷手册1--学习心态篇
  5. 项目过程管理(十一)提测流程和免测标准
  6. Linux(ubuntu)安装AppImage步骤
  7. 保研考研面试—机器学习
  8. 爬虫---爬取大众点评
  9. 牛客:缆车(LCA)
  10. 需求推送变革!陈小平教授深度剖析机器人因何由精确性转向灵巧性