Android自定义View学习笔记03
预备知识
BitMap
类
BitMap
位图类,其中有一个嵌套类叫Bitmap.Config
,内部有四个枚举值。这个类的作用是定义位图存储质量,即存储一个像素的位数,以及是否能显示透明、半透明颜色(Possible bitmap configurations. A bitmap configuration describes how pixels are stored. This affects the quality (color depth) as well as the ability to display transparent/translucent colors)。
A 透明度 R 红色 G 绿色 B 蓝色
Bitmap.Config ALPHA_8 只存储透明度,其他颜色不存储
Bitmap.Config ARGB_4444 16 每个像素 占四位
Bitmap.Config ARGB_8888 32 每个像素 占八位
Bitmap.Config RGB_565 16 R占5位 G占6位 B占5位 没有透明度(A)
参考博客
矩形类
Rect
类,通过定义四条(左、上、右、下)边来组成一个矩形。别扭的是,参数代表的是每条边距离x轴或者y轴的距离。RectF
类,同上,不同的是Rect
的参数类型的整形,带F的是单精度浮点数。另外Rect
对象可以作为参数来构造RectF
对象。
一个很重要的类BitmapShader
位图渲染器
BitmapShader
位图渲染器,用位图当做纹理来画图,通过设置模式来设置不同的渲染效果(Shader used to draw a bitmap as a texture. The bitmap can be repeated or mirrored by setting the tiling mode)。
- 构造方法
BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode tileY)
,参数分别是,当做纹理的位图、横轴方向的渲染方式、纵轴方向的渲染方式。 - 有个嵌套类
Shader.TileMode
瓦片模式,里面定义了三个枚举类型的变量。
CLAMP
如果渲染器超出了原始边界范围,会复制原始边界的颜色在范围外渲染。
REPEAT
如果显示范围大于图片的大小,则会横向和纵向的重复渲染图片,进行平铺。
MIRROR
和上一个类似,只不过是用镜像方式进行平铺。一般用的时候会用第一个参数。
- 设置变形矩阵的方法
public void setLocalMatrix(Matrix localM)
。 - 参考博客Android学习笔记进阶16之BitmapShader
Paint
类
该类内有一个设置Shader
渲染器对象的方法public Shader setShader(Shader shader)
来设置渲染器。
Matrix
矩阵类
Matrix
内部存有一个3*3的矩阵,里面存有变形信息,没有构造函数。只能通过具体的方法来设置相关参数。这个矩阵被分为四部分,分别是比例旋转、平移、等比例变换、透视变换。运算原理就是矩阵的变换,参考Android Matrix理论与应用详解
- 设置缩放的方法public void setScale(float sx,float sy)
,参数是水平缩放比例和竖直缩放比例。
未完