博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xamarin android 实现二维码带logo生成效果
阅读量:5058 次
发布时间:2019-06-12

本文共 1647 字,大约阅读时间需要 5 分钟。

MultiFormatWriter writer = new MultiFormatWriter();            Dictionary
hint = new Dictionary
(); hint.Add(EncodeHintType.CHARACTER_SET, "UTF-8"); hint.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H); BarcodeWriter barcodeWriter = new BarcodeWriter(); var bm = writer.encode("123123123", BarcodeFormat.QR_CODE, 700, 700, hint); var bmp = barcodeWriter.Write(bm); //获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸) int[] rectangle = bm.getEnclosingRectangle(); Bitmap logo = BitmapFactory.DecodeResource(this.Resources, Resource.Mipmap.timg); //计算插入图片的大小和位置 int width = Math.Min((int)(rectangle[2] / 3.5), logo.Width); int height = Math.Min((int)(rectangle[3] / 3.5), logo.Height); int left = (bmp.Width - width) / 2; int top = (bmp.Height - height) / 2; int right = left + width; int bottom = top + height; //将img转换成bmp格式,否则后面无法创建Graphics对象 using (Android.Graphics.Canvas g = new Canvas(bmp)) { //先填充个白色背景 // g.DrawRect(new Rect(left-1, top-1, right+1, bottom+1), new Paint() { Color = Color.White }); g.DrawBitmap(logo, new Rect(0, 0, logo.Width, logo.Height), new Rect(left, top, right, bottom), new Paint()); } ImageView view = new ImageView(this); view.SetImageBitmap(bmp); this.AddContentView(view, new Android.Views.ViewGroup.LayoutParams(700, 700));

 

转载于:https://www.cnblogs.com/jasondun/p/9923469.html

你可能感兴趣的文章
plsql通过instantclient连接oracle数据库报连接超时
查看>>
亿级SQL Server运维的最佳实践PPT分享
查看>>
快速理解高性能HTTP服务端的负载均衡技术原理(转)
查看>>
BZOJ 3038: 上帝造题的七分钟2
查看>>
BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
查看>>
MapReduce详解及shuffle阶段
查看>>
css可视化格式模式
查看>>
HDU1257最少拦截系统
查看>>
[bzoj3273]liars
查看>>
Graph_Master(连通分量_B_Trajan+完全图)
查看>>
【Shiro】四、Apache Shiro授权
查看>>
Alpha阶段个人总结
查看>>
作业一:android开发平台的演变以及Android Studio设置
查看>>
RAC改动归档文件夹
查看>>
nyoj 14 会场安排问题
查看>>
Linux 的启动流程
查看>>
Hadoop自学笔记(一)常见Hadoop相关项目一览
查看>>
使用Three.js绘制一个虚拟城市
查看>>
【译】多态(一)
查看>>
c++心得00010- sort part2 的应用(额,还是单独写出来吧。。。2333)
查看>>