Android 图片合成海报生成二维码,指定文字。
一 ,图片合成,海报增加二维码,文字,或者用户ID。先看图
这个是没有合成之前的图。
合成之后的图。
。
使用到的技术点
1,图片Glide
2, banner2.0
3, zxing
class MainActivity : AppCompatActivity() {var imgs = ArrayList<ImageBean>()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)createImage();//添加到集合imgs.add(ImageBean(123456, bitmap_1!!))imgs.add(ImageBean(123456, bitmap_2!!))imgs.add(ImageBean(123456, bitmap_3!!))//初始化banner。initBanner()}fun initBanner() {//默认第一个等mBitmap = bitmap_1banners.addBannerLifecycleObserver(this)//添加生命周期观察者.setAdapter(ImageAdapter(imgs)).setIndicator(CircleIndicator(this))
// .setBannerGalleryEffect(50,10) //画廊效果.setBannerGalleryMZ(50) //魅族效果.isAutoLoop(false)//是否允许自动播放.addOnPageChangeListener(object : OnPageChangeListener {override fun onPageScrollStateChanged(state: Int) {}override fun onPageScrolled(position: Int,positionOffset: Float,positionOffsetPixels: Int) {}//选中时,等于临时的bitmapoverride fun onPageSelected(position: Int) {Toast.makeText(this@MainActivity, "position:${bitmap_1.toString()}", Toast.LENGTH_SHORT).show()mBitmap = when (position) {0 -> bitmap_11 -> bitmap_22 -> bitmap_3else ->bitmap_1}}})save_btn.setOnClickListener {var file = ImageUtils.saveImageToFile(this@MainActivity,mBitmap!!,"invite_face.jpg")!!Toast.makeText(this@MainActivity, "file:${file.path}", Toast.LENGTH_SHORT).show()}}private var mBitmap: Bitmap? = nullprivate var bitmap_1: Bitmap? = nullprivate var bitmap_2: Bitmap? = nullprivate var bitmap_3: Bitmap? = nullprivate var mUrl: String = "https://www.baidu.com/" //二维码对应的网址。/*** 创建图片*/fun createImage() {//二维码相关设置//第一种二维码val logoBm = QRCodeUtil.createQRCodeBitmap(mUrl,SizeUtils.dip2px(this, 100f).toInt(),SizeUtils.dip2px(this, 100f).toInt())//第一张图片 加上二维码val bm1 = (resources.getDrawable(R.mipmap.p1) as BitmapDrawable).bitmapbitmap_1 =//mergeBitmap(bm1, logoBm, SizeUtils.dip2px(this, 20f), SizeUtils.dip2px(this, 175f), 0)//第二张图片 加上二维码val bm2 = (resources.getDrawable(R.mipmap.p2) as BitmapDrawable).bitmapbitmap_2 =mergeBitmap(bm2, logoBm, SizeUtils.dip2px(this, 20f), SizeUtils.dip2px(this, 175f), 0)//第三张图片 加上二维码val bm3 = (resources.getDrawable(R.mipmap.p3) as BitmapDrawable).bitmapbitmap_3 =mergeBitmap(bm3, logoBm, SizeUtils.dip2px(this, 20f), SizeUtils.dip2px(this, 175f), 0)}//合成图片fun mergeBitmap(firstBitmap: Bitmap?,secondBitmap: Bitmap?,width: Float,height: Float,type: Int): Bitmap? {if (firstBitmap == null || secondBitmap == null) return nullval bitmap = Bitmap.createBitmap(firstBitmap.width, firstBitmap.height,Bitmap.Config.ARGB_8888)val canvas = Canvas(bitmap)canvas.drawBitmap(firstBitmap, 0f, 0f, null)//NULLwhen (type) {0, 1 -> {// 画笔。val paint = Paint()paint.color = Color.WHITEpaint.style = Paint.Style.FILLpaint.strokeWidth = 12fpaint.textSize = SizeUtils.dip2px(this, 20f)val msg = "邀请码ID:123456"//绘制到图片上。在图片上位置canvas.drawText(msg,SizeUtils.dip2px(this, 20f),SizeUtils.dip2px(this, 165f),paint)}2 -> {val paint = Paint()paint.color = Color.WHITEpaint.style = Paint.Style.FILLpaint.strokeWidth = 12fpaint.textSize = SizeUtils.dip2px(this, 20f)val msg = "邀请码ID:123456"canvas.drawText(msg,SizeUtils.dip2px(this, 30f),SizeUtils.dip2px(this, 20f),paint)}}canvas.save()canvas.drawBitmap(secondBitmap, width, height, null)canvas.restore()return bitmap}}
源码奉上。如果帮到你了,请点个赞吧! demo地址
Android 图片合成海报生成二维码,指定文字。相关推荐
- Vue+element-ui上传logo图片到后端生成二维码展示到页面
Vue+element-ui上传logo图片生成二维码展示到页面 该文章将介绍如何通过前端上传二维码logo图片在后台生成二维码,并将生成的二维码转换成Base64编码返回给前端在页面展示,用户扫码二 ...
- vue使用qrcodejs2生成带log的二维码图片,vue生成二维码图片中间带log,自定义log
安装插件 npm install qrcodejs2 --save 在页面中引入 import QRcode from 'qrcodejs2' 普通的二维码 此处的id就是页面中要展示二维码容器的id ...
- Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小、字体大小、字体颜色、边框颜色、边框大小等等
Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小.字体大小.字体颜色.边框颜色.边框大小等等. 0.准备 ...
- java在底图上生成二维码以及文字
java在底图上生成二维码以及文字 1.添加依赖 <dependency><groupId>cn.hutool</groupId><artifactId> ...
- (二维码处理--2)二维码图片和海报背景进行合成(包含生成二维码)
maven依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</ ...
- Android:使用ZXing生成二维码(支持添加Logo图案)
ZXing是谷歌的一个开源库,可以用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...
- python批量识别二维码图片_python批量操作生成二维码
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型.生成二维码的方式有 ...
- 生成二维码附带文字信息
生成二维码写入PDF文件 目录 生成二维码写入PDF文件 前言 一.引入依赖 二.生成二维码 1.创建实体类 2.创建QRCodeUtil 3.生成单条二维码 4.批量生产二维码 三.生成二维码写入P ...
- php使用phpqrcode生成二维码追加文字
直接上代码,phpqrcode包自行下载. <?phpclass ControllerTestQrcode extends Controller {/*** 用於生成一個二維碼*/public ...
最新文章
- linux shell #[感叹号]/bin/bash 是什么意思?
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能_转载
- 计算机丢失msvcrtdll怎么修复,雨林木风修复msvcrtdll
【操作方案】
的详细_
- cadence allegro - 焊盘命名规则 -unfinished -unfinished-unfinished
- 超图(idesktop iserver10) 处理osgb倾斜摄影和tif并 发布 加载 ---2---连续更新
- AtCoder从小白到大神的进阶攻略
- 私域流量和公域流量的区别
- MATLAB对光路进行模拟,MATLAB辅助OptiSystem实现光学反馈环路的模拟
- JVM-Cpu飙升排查及解决
- IP地址-子网划分详解
- Ubuntu20.04 重装N卡驱动仍无法解决的问题的解决方法
- mysql远程过程调用失败怎么办_远程过程调用失败且未执行是什么意思
- PaddlePaddle 波斯顿房价预测训练结果
- C#-Excel导入工资条群发邮箱
- 香橙派 lite 2 使用OV5640
- 华为设备链路聚合(LACP模式)
- “冰箱强行播广告关不了”上热搜,网友:买了块广告牌回家
- 基于图论的立体匹配方法研究----绪论
- Pomelo PRC
- 用老毛桃U盘安装:[3]Ghost版Win7系统
热门文章
- SRT协议的Wireshark解析器编写(Lua)
- 一加8T可以升级鸿蒙吗,一加8T为什么值得购买?单凭这一点让你心动
- motionbest】 动态野兽AE课程人工翻译【画质高清有素材】
- 明辰智航云安---网络分析
- Simditor的使用
- Linux文件系统性能优化
- 随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景
- 树莓派远程4G遥控车教程(四)-实时监控内网穿透及集成舵机控制功能
- js验证16进制和十进制
- 计算机速录方法,速录软件速录方法细说