第8章 图形与图像处理-【千锋教育】Android从入门到精通
2023-03-21
|
43页
|
131人阅读
|
0人下载
教辅
内容正文:
第8章 图形与图像处理
使用简单图片
绘图
图形特效处理
逐帧动画
补间动画
属性动画
使用SurfaceView实现动画
掌握使用Bitmp与BitmapFactory处理图片
掌握SurfaceView的绘图机制
掌握自定义绘图和图形的特效处理
掌握三种动画的使用
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
8.1
使用简单图片
目录
Contents
初心至善 匠心育人
8.1 使用简单图片
在实际开发中应用到的图片不仅仅包括.png、.gif、.png、.jpg和各种Drawable系对象,还包括位图Bitmap,而且对图片的处理也是一个影响程序的高效性和健壮性的重要因素。在第8章已经讲解过Drawable资源,下面讲解与之相关的两个类——Bitmap与BitmapFactory
Bitmap代表一张位图,扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/8=3072KB,虽然位图文件图像效果很好,但是非压缩格式的,需要占用较大存储空间,更不利于网络传输。利用Bitmap可以获取图像文件信息,借助Matrix进行图像剪切、旋转、缩放等操作,再以指定格式保存图像文件。
初心至善 匠心育人
8.1 使用简单图片
通常构造一个类的对象时,都是使用该类的构造方法实现。而Bitmap采用的是工厂设计模式而设计,所以创建Bitmap时一般不调用其构造方法,可通过如下两种方式构建Bitmap对象。
1. 通过Bitmap的静态方法static Bitmap createBitmap()
初心至善 匠心育人
8.1 使用简单图片
2. 通过BitmapFactory工厂类的static Bitmap decodeXxx()
BitmapFactory是一个工具类,它用于提供大量的方法,这些方法可用于从不同的数据源来解析、创建Bitmap对象,BitmapFactory包含如表所示的常用方法。
在实际开发中,创建Bitmap对象时需考虑内存溢出(OutOfMemory,OOM)的问题,当上一个创建的Bitmap对象还没被回收而又创建下一个Bitmap对象时就会出现该问题。
初心至善 匠心育人
8.1 使用简单图片
为此Android提供了如下两个方法来判断Bitmap对象是否被回收,若没有则强制回收。
boolean isRecycled():判断该Bitmap对象是否已被回收。
void recycle():若Bitmap对象没有回收则强制回收。
初心至善 匠心育人
8.2
绘图
8.2.1
Android绘图基础;Canvas、Paint等
8.2.2
Path类
目录
Contents
初心至善 匠心育人
8.2 绘图
在第2章介绍Android应用的界面编程中,已经介绍了自定义UI组件的过程以及常用的继承方法。之所以需要自定义UI组件,是因为系统提供的原生组件并不能满足实际开发的需求。本节内容同理,绘图也是为了满足实际开发的需求。下面来讲解绘图时常用的几个类。
初心至善 匠心育人
8.2 绘图
8.2.1 Android绘图基础:Canvas、Paint等
在第2章讲解自定义UI组件时已经提醒过大家,在Android应用开发的面试题中甚至实际开发中,自定义View的三个方法都是被考查的关键,这三个方法分别是onMeasure()、onLayout()和onDraw()。
其中重写onDraw()方法时将用到Canvas类,Canvas单词本身有“油画布”的含义。Android通过Canvas类暴露了很多drawXXX方法,开发者可以通过这些方法绘制各种各样的图形。Canvas绘图有三个基本要素:Canvas、绘图坐标系以及Paint。Canvas是画布,通过Canvas的各种drawXxx方法将图形绘制到Canvas上面,在drawXxx方法中需要传入要绘制的图形的坐标形状,还要传入一个画笔Paint。drawXxx方法以及传入其中的坐标决定了要绘制的图形的形状,比如drawCircle方法,用来绘制圆形,需要传入圆心的x和y坐标,以及圆的半径。
初心至善 匠心育人
8.2 绘图
8.2.1 Android绘图基础:Canvas、Paint等
drawXxx方法中传入的画笔Paint决定了绘制的图形的一些外观,比如绘制的图形的颜色,再比如绘制的是圆面还是圆的轮廓线等。
Android系统的设计吸收了很多现有系统的诸多优秀之处,比如Canvas绘图。Canvas不是Andro
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。