一 ,图片合成,海报增加二维码,文字,或者用户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 图片合成海报生成二维码,指定文字。相关推荐

  1. Vue+element-ui上传logo图片到后端生成二维码展示到页面

    Vue+element-ui上传logo图片生成二维码展示到页面 该文章将介绍如何通过前端上传二维码logo图片在后台生成二维码,并将生成的二维码转换成Base64编码返回给前端在页面展示,用户扫码二 ...

  2. vue使用qrcodejs2生成带log的二维码图片,vue生成二维码图片中间带log,自定义log

    安装插件 npm install qrcodejs2 --save 在页面中引入 import QRcode from 'qrcodejs2' 普通的二维码 此处的id就是页面中要展示二维码容器的id ...

  3. Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小、字体大小、字体颜色、边框颜色、边框大小等等

    Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小.字体大小.字体颜色.边框颜色.边框大小等等. 0.准备 ...

  4. java在底图上生成二维码以及文字

    java在底图上生成二维码以及文字 1.添加依赖 <dependency><groupId>cn.hutool</groupId><artifactId> ...

  5. (二维码处理--2)二维码图片和海报背景进行合成(包含生成二维码)

    maven依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</ ...

  6. Android:使用ZXing生成二维码(支持添加Logo图案)

    ZXing是谷歌的一个开源库,可以用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...

  7. python批量识别二维码图片_python批量操作生成二维码

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型.生成二维码的方式有 ...

  8. 生成二维码附带文字信息

    生成二维码写入PDF文件 目录 生成二维码写入PDF文件 前言 一.引入依赖 二.生成二维码 1.创建实体类 2.创建QRCodeUtil 3.生成单条二维码 4.批量生产二维码 三.生成二维码写入P ...

  9. php使用phpqrcode生成二维码追加文字

    直接上代码,phpqrcode包自行下载. <?phpclass ControllerTestQrcode extends Controller {/*** 用於生成一個二維碼*/public ...

最新文章

  1. linux shell #[感叹号]/bin/bash 是什么意思?
  2. 一步一步学Silverlight 2系列(5):实现简单的拖放功能_转载
  3. 计算机丢失msvcrtdll怎么修复,雨林木风修复msvcrtdll 【操作方案】 的详细_
  4. cadence allegro - 焊盘命名规则 -unfinished -unfinished-unfinished
  5. 超图(idesktop iserver10) 处理osgb倾斜摄影和tif并 发布 加载 ---2---连续更新
  6. AtCoder从小白到大神的进阶攻略
  7. 私域流量和公域流量的区别
  8. MATLAB对光路进行模拟,MATLAB辅助OptiSystem实现光学反馈环路的模拟
  9. JVM-Cpu飙升排查及解决
  10. IP地址-子网划分详解
  11. Ubuntu20.04 重装N卡驱动仍无法解决的问题的解决方法
  12. mysql远程过程调用失败怎么办_远程过程调用失败且未执行是什么意思
  13. PaddlePaddle 波斯顿房价预测训练结果
  14. C#-Excel导入工资条群发邮箱
  15. 香橙派 lite 2 使用OV5640
  16. 华为设备链路聚合(LACP模式)
  17. “冰箱强行播广告关不了”上热搜,网友:买了块广告牌回家
  18. 基于图论的立体匹配方法研究----绪论
  19. Pomelo PRC
  20. 用老毛桃U盘安装:[3]Ghost版Win7系统

热门文章

  1. SRT协议的Wireshark解析器编写(Lua)
  2. 一加8T可以升级鸿蒙吗,一加8T为什么值得购买?单凭这一点让你心动
  3. motionbest】 动态野兽AE课程人工翻译【画质高清有素材】
  4. 明辰智航云安---网络分析
  5. Simditor的使用
  6. Linux文件系统性能优化
  7. 随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景
  8. 树莓派远程4G遥控车教程(四)-实时监控内网穿透及集成舵机控制功能
  9. js验证16进制和十进制
  10. 计算机速录方法,速录软件速录方法细说