【Android学习笔记】图形与图像处理(静态处理)

news/2024/11/8 3:26:19/

使用简单的图片

  • 通过Drawable对象进行访问。

R.drawable.file_name

@drawable/file_name

  • 通过BitmapDrawable对Bitmap对象进行封装,以下皆为静态方法,来自BitmapFactory。

    • BitmapDrawagle drawable - new
      BitmapDrawable(bitmap);通过Bitmap对象的到另外的图像

    • createBitmap(Bitmap source,int x,int y,int width, int
      height):从源位图source的制定位置开始截取一个图像。

    • createScaledBitmap(Bitmap src,int dstWidth,int dstHeight,boolean
      filter):对原来的位图进行缩放

    • createBitmap(int width,int height,Bitmap.Config
      config):创建一个宽width、height的新位图

    • createBitmap(Bitmap source,int x,int y,int width,int height,Matris
      m,boolean filter);截取一段图像

    • decodeByteArray(byte[],int offset, int
      length);从指定字节数组的offset位置开始,将长度length的字节解析成Bitmap对象。

    • decodeFile(String pathName):从pathName指定文件中解析、创建Bitmap对象

  • 用来判断是否被回收: isRecycled()

用来强制回收:recycle()

  • 使用静态方法导入一张图片:

    • AssetManager assets=getAssets();

    • InputStream assetsFile = assets.open(images[currentImg++]);

    • BitmapDrawable bitmapDrawable=(BitmapDrawable) image.getDrawable();

    • image.setImageBitmap(BitmapFactory.decodeStream(assetFile));

>绘图

  • 绘图基础

    • 集成View组件,重写onDraw()回调方法。

*使用Canvas画布进行画图

  • drawArc()

    • drawBitmap()

    • drawCircle()

    • drawLine()

    • drawLines(),drawOvl()

    • drawPath(),drawPoint()

    • drawPoints(),drawRect()

    • drawRoundRect()

    • drawText()

    • drawTextOnPath()

    • clipRect()

    • clipRegion();

* Canvas坐标变换rotate()旋转,scale()缩放,skew()倾斜,translate()移动;

  • 使用Paint进行绘图

    • setARGB()设置颜色。

    • setAlpha()设置透明度

    • setColor()设置颜色

    • setPathEffect()设置路径

    • setShader()设置画笔的填充效果

    • setShadowLayer()设置阴影

    • setStrokeWidth()设置笔触宽度

    • setStrokeJoin()设置笔转风格

    • setStyle()设置paint的填充风格

    • setTextAlign()设置文字对齐方式

    • setTextSize()设置文本的文字大小。

  • 使用Path类

    • 预先将N个点连成一条路径,然后在路径上绘制

    • 子类ComposePathEffect/CornerPathEffect/DashPathEffect/DiscretePathEffect/SumPathEffect

  • 绘图应用-绘制有用游戏

重复调用onDraw()方法,每次在View组件上绘制不同的东西,形成逐帧动画。

  • 双缓冲画图板

    • 弹球游戏

>图形特效处理

  • 使用Matrix控制变换步骤

    1. 获取Matrix对象

    2. 调用Matrix的方法进行变换(矩阵方法)

    3. 将程序Matrix所做的变换应用到指定图形或组件。

  • Matrix提供的方法

    • setTranslage

    • setSkew()

    • setTotate()

    • setScale()

  • Matrix 应用举例

    • 键盘操作图片移动

    • 移动游戏背景

  • 使用drawBitmapMesh扭曲图像

    • bitmap:扭曲的源位图

    • meshWidth/meshHeight划分格子数

    • verts扭曲后个顶点的位置

    • vertOffset:控制verts数组中扭曲的开始。

    • 通过drawBitmapMesh()方法对源位图扭曲绘制。

  • drawBitmapMesh 应用举例

    • 可揉的图片

>使用Shader填充图形

  • 使用Shader对象指定渲染效果来填充图像。子类:

    • BitmapShader位图平铺

    • LinerGradient线性渐变

    • RadialGradient圆形渐变

    • SweepGradient角度渐变

    • ComposeShader组合渲染效果


http://www.ppmy.cn/news/764505.html

相关文章

何为高通平台的AMSS

在高通平台的工程中存在两个文件夹Android 和amss 或 amss_proc ,其下有两个文件夹 adsp_proc,cdsp_proc,那么什么事amss 呢? 先记住一个概念 AMSS(Advanced Mobile Subscriber Software)先进移动用户软件,由Dual-Mode Subscriber…

msa-note

笔记2 # 一.Spring Security 安全框架 权限控制> security网址https://gitee.com/zhao-qing-jing/msa2104/tree/master/02-jt-spring-security> 为什么选择SpringSecurity框架功能强大springBoot诞生后简化了配置 > 加密方式Bcrypt底层基于随机盐方式对密码进行has…

mix3信号测试软件,小米MIX3三大绝招保证信号质量,实测下来还优于iPhone XS Ma

原标题:小米MIX3三大绝招保证信号质量,实测下来还优于iPhone XS Ma 经常有用户遇到这样一个问题:好好的打着电话,突然手机就没有信号了;或者到了一些地方手机的信号非常的弱。特别是随着全面屏的普及,伴随着…

micaps相关

1、micaps4转grid 使用meteva库pip install meteva import meteva.base as meb def micaps4_to_grid():filename r"/test/pre-micaps-1h/1805/20201118_0500_qpf_ml.txt" # 114 127 21 29grid meb.grid([113.22, 124.28, 0.01], [33.62, 38.98, 0.01])grd meb.…

MSA迭代步长

MSA算法一般是沿下降方向给定一个确定的步长,标准公式如下: 式中, k1 为正常数,决定步长的长度, k2 是非负常数,代表了对起始步长的补偿值,n为迭代次数。经典的MSA算法一般令 k11 ,…

我学MSA 之:线性分析(回归法)

01、开篇语 各位小伙伴,你们好。 本期与您介绍AIAG MSA手册中对线性分析的推荐方法(就称作回归法吧)。通常情况下,偏倚和线性分析是同时进行的,原因在于线性分析是分析偏倚在量具的量程范围内的表现,可包…

一文搞懂什么是MSS

文章首发于公-众-号,汽车网络诊断通信 我们知道MTU是网卡的参数,是数据链路层对网络层的IP包大小的限制。当网络层的IP包(包括IP头,VLAN tag)的大小超过了MTU时,需要先在网络层进行分片,切割成小于MTU的IP包&#xff0…

微服务(MSA) 和 面向服务架构(SOA) 的区别和联系

文章目录 微服务(MSA) 和 面向服务架构(SOA) 的区别和联系1、相似之处2、区别和联系2.1、基于SOA的架构2.2、基于微服务的架构微服务(MSA) 和 面向服务架构(SOA) 的区别和联系 1、相似之处 1、都是面向服务 2、都是基于HTTP协议 2、区别和联系 传统的SOA 一般是大而全的单块…