当前位置: 首页 > news >正文

Android中代码生成图片高级部分

1、引言

        上一篇文章已经介绍了使用bitmap对象生成图片,但android中不仅仅可以直接使用bitmap对象生成图片,也能借助bitmap对象将布局文件转化为图片,实际应用时,我们需要将两者结合起来,只有这样才能生成更加绚丽的图片样式,接下来我就再演示一种使用bitmap直接生成三角形的案例,同时也附加将布局文件生成图片的方法,希望能对大家有所帮助。

2、实现步骤

2.1、bitmap生成三角形原理

        这里我以生成等腰直角三角形为例,使用bitmap对象生成三角形可以把所有三角形转化为直角三角形的方式直接或间接生成,其中钝角三角形可以转化为一个直角三角形减去一个直角三角形的方式生成,锐角三角形可以转化为两个直角三角形结合的形式,然后借助相似三角形原理绘制成实心。

2.2、实现代码

    /*** 绘制等腰三角形*/private void draw_isosceles_triangle(){//绘制三角形,把所有三角形当做直角三角形变形所得,然后根据垂直边按照比例绘制成实心或者只绘制边//1、绘制等腰直角三角形Bitmap customBitmap = Bitmap//通过控制每一个像素点生成bitmap对象,可以用这种方式生成图片.createBitmap(300, 300, Bitmap.Config.ARGB_8888);//按像素设置//以y轴为参照向上绘制垂足坐标(0,400),上顶点坐标是(0,100),右顶点坐标是(300,400)int i,j;//bitmap对象中坐标轴方向:x坐标从左到右,y坐标从上到下for (j = 0; j < 300; j++) {for (i = 0; i < 300-j; i++) {//绘制向上的边和向右的边customBitmap.setPixel(j,i+j,Color.parseColor("#f06292"));}}iv_custom.setImageBitmap(customBitmap);saveBitmap(customBitmap);}

2.3、布局文件转化为图片

        布局文件生成图片一定要等界面加载完成后再获取,避免获取到的视图尺寸为0,下面是实现获取一个布局并测定尺寸的方式:

    /*** 保存布局为图片*/private void saveLayout(){View view = LayoutInflater.from(CreateBitmapActivity.this).inflate(R.layout.activity_create_bitmap, null, false);//计算设备分辨率WindowManager manager = CreateBitmapActivity.this.getWindowManager();DisplayMetrics metrics = new DisplayMetrics();manager.getDefaultDisplay().getMetrics(metrics);int width = metrics.widthPixels;int height = metrics.heightPixels;//测量使得view指定大小int measureWidth = View.MeasureSpec.makeMeasureSpec(width,         View.MeasureSpec.EXACTLY);int measureHeight = View.MeasureSpec.makeMeasureSpec(height,     View.MeasureSpec.AT_MOST);view.measure(measureWidth, measureHeight);//调用layout方法布局后,可以得到view的尺寸view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);//设置位图背景透明色,只有jpg不支持透明色,要用pngCanvas canvas = new Canvas(bitmap);canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);//设置画布背景透明色view.draw(canvas);saveBitmap(bitmap);//保存为图片}

2.4、补充说明

        上面获取布局文件的方式中使用了图片保存方法,这个方法就是我的上一篇文章中提供的方法,这里就不展示了。

3、视频效果演示

        这里的效果演示包含了bitmap对象直接绘制图片和将布局文件转化为图片的视频演示效果。

android中使用代码生成图片

http://www.lryc.cn/news/299455.html

相关文章:

  • 计算机网络——09Web-and-HTTP
  • 【教程】MySQL数据库学习笔记(一)——认识与环境搭建(持续更新)
  • 软件测试-测试用例研究-如何编写一份优秀的测试用例
  • 计网day1
  • vLLM vs Text Generation Interface:大型语言模型服务框架的比较
  • [AIGC] 上传文件:后端处理还是直接阿里云OSS?
  • 速盾cdn:香港服务器如何用国内cdn
  • 深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】
  • IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx‘
  • Python基于大数据的电影预测分析系统
  • 【MATLAB】小波神经网络回归预测算法
  • 最新Burp Suite入门讲解
  • 【C++】模版初阶
  • Stable Diffusion 模型下载:DreamShaper(梦想塑造者)
  • GPT-4模型的创造力
  • 没用的计算器
  • 基于 Python 的大数据的电信反诈骗系统
  • 二、ClickHouse简介
  • C++ 11新特性之并发
  • jvm问题自查思路
  • 任意IOS16系统iPad/Iphone开启台前调度
  • LeetCode、452. 用最少数量的箭引爆气球【中等,贪心,区间问题】
  • 洛谷C++简单题小练习day10—umi的函数
  • 【Linux学习】线程互斥与同步
  • 前端开发:(三)CSS入门
  • 一周学会Django5 Python Web开发-Django5创建项目(用PyCharm工具)
  • 寒假学习记录13:JS对象
  • 学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)
  • C#向数组指定索引位置插入新的元素值:自定义插入方法 vs List<T>.Add(T) 方法
  • 【大数据Hive】hive 表设计常用优化策略