当前位置: 首页 > 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中使用代码生成图片

相关文章:

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

1、引言 上一篇文章已经介绍了使用bitmap对象生成图片&#xff0c;但android中不仅仅可以直接使用bitmap对象生成图片&#xff0c;也能借助bitmap对象将布局文件转化为图片&#xff0c;实际应用时&#xff0c;我们需要将两者结合起来&#xff0c;只有这样才能生成更加绚丽的图片…...

计算机网络——09Web-and-HTTP

Web and HTTP 一些术语 Web页&#xff1a;由一些对象组成对象可以是HTML文件、JPEG图像&#xff0c;JAVA小程序&#xff0c;声音剪辑文件等Web页含有一个基本的HTML文件&#xff0c;该基本HTML文件又包含若干对象的引用&#xff08;链接&#xff09;通过URL对每个对象进行引用…...

【教程】MySQL数据库学习笔记(一)——认识与环境搭建(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、认…...

软件测试-测试用例研究-如何编写一份优秀的测试用例

什么是测试用例 测试用例是一组由测试输入、执行条件、预期结果等要素组成&#xff0c;以完成对某个特定需求或者目标测试的数据&#xff0c;体现测试方案、方法、技术和策略的文档。测试用例是软件测试的核心&#xff0c;它把测试系统的操作步骤用文档的形式描述出来&#xf…...

计网day1

RTT&#xff1a;往返传播时延&#xff08;越大&#xff0c;游戏延迟&#xff09; 一.算机网络概念 网络&#xff1a;网样的东西&#xff0c;网状系统 计算机网络&#xff1a;是一个将分散得、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功…...

vLLM vs Text Generation Interface:大型语言模型服务框架的比较

在大型语言模型&#xff08;LLM&#xff09;的世界中&#xff0c;有两个强大的框架用于部署和服务LLM&#xff1a;vLLM 和 Text Generation Interface (TGI)。这两个框架都有各自的优势&#xff0c;适用于不同的使用场景。在这篇博客中&#xff0c;我们将对这两个框架进行详细的…...

[AIGC] 上传文件:后端处理还是直接阿里云OSS?

在构建Web应用时&#xff0c;我们经常需要处理用户上传的文件。这可能是图片、视频、文档等各种各样的文件。但是&#xff0c;上传文件的方式有很多种&#xff0c;最常见的两种方式是&#xff1a;通过后端处理&#xff0c;或者直接上传至云存储服务&#xff0c;如阿里云OSS。那…...

速盾cdn:香港服务器如何用国内cdn

在国内使用香港服务器的情况下&#xff0c;可以考虑使用速盾CDN来提供加速服务。速盾CDN是一种专业的内容分发网络解决方案&#xff0c;可以通过使用不同节点的服务器来提供高速的内容传输和访问。 首先&#xff0c;使用速盾CDN可以帮助解决香港服务器与国内用户之间的延迟和带…...

深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】

深入学习Pandas&#xff1a;数据连接、合并、加入、添加、重构函数的全面指南 Pandas是Python中最强大且广泛使用的数据处理库之一&#xff0c;提供了丰富的函数和工具&#xff0c;以便更轻松地处理和分析数据。在本文中&#xff0c;我们将深入探讨Pandas中一系列数据连接、合…...

IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx‘

问题&#xff1a;IDEA中mybatis配置文件表名显示红色&#xff0c;提示 Unable to resolve table ‘xxx’ 解决方法&#xff1a; 使用快捷提示键 Alt Enter&#xff0c;选择 Go to SQL Resolution Scopes&#xff08;转到SQL的解析范围&#xff09;...

Python基于大数据的电影预测分析系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

【MATLAB】小波神经网络回归预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 小波神经网络回归预测算法是一种利用小波变换和人工神经网络相结合的方法&#xff0c;用于解决回归预测问题。下面将详细介绍该算法的原理与方法&#xff1a; 小波变换&#xff1a; 小波变…...

最新Burp Suite入门讲解

Burp Suite的安装 Burp Suite是一款集成化的渗透测试工具&#xff0c;包含了很多功能&#xff0c;可以帮助我们高效地完成对Web应用程序的渗透测试和安全检测。 Burp Suite由Java语言编写&#xff0c;Java自身的跨平台性使我们能更方便地学习和使用这款软件。不像其他自动化测…...

【C++】模版初阶

目录 泛函编程 函数模版 概念 格式 原理 实例化 模版函数的匹配原则 类模板 定义格式 泛函编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, dou…...

Stable Diffusion 模型下载:DreamShaper(梦想塑造者)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 DreamShaper 是一个分格多样的大模型&#xff0c;可以生成写实、原画、2.5D 等…...

GPT-4模型的创造力

超级的创造力是GPT-4等高级语言模型的重要特征之一。它们不仅能够精确地模拟和再现各类文本样式、结构和内容&#xff0c;而且在生成新的文本时&#xff0c;能够通过深度学习算法对海量训练数据中捕捉到的模式进行创新性的重组与拓展&#xff1a; 词汇创新&#xff1a;基于已学…...

没用的计算器

本次的项目仍然属于没用的模块&#xff0c;仅供娱乐&#xff0c;最后附有效果视频&#xff0c;如需要源代码可以私信或评论&#xff0c;本次还是使用vue来实现的&#xff0c;同样也可以修改为JS 一、HTML部分 <div class"con"><div class"calculator&q…...

基于 Python 的大数据的电信反诈骗系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

二、ClickHouse简介

ClickHouse简介 前言一、行式存储二、DBMS功能三、多样化引擎四、高吞吐写入能力五、数据分区与线程级并行六、场景七、特定版本 前言 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用 C 语言编写&#xff0c;主要…...

C++ 11新特性之并发

概述 随着计算机硬件的发展&#xff0c;多核处理器已经成为主流&#xff0c;对程序并发执行能力的需求日益增长。C 11标准引入了一套全面且强大的并发编程支持库&#xff0c;为开发者提供了一个安全、高效地利用多核CPU资源进行并行计算的新框架&#xff0c;极大地简化了多线程…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...

华为云Flexus+DeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手

华为云FlexusDeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手 一、构建知识库问答助手引言二、构建知识库问答助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建知识库问答助手实战3.1 配置Dify环境3.2 创建知识库问答助手3.3 使用知…...