Update
This commit is contained in:
@@ -22,21 +22,17 @@ MPERSP\\_0 & MPERSP\\_1 & MPERSP\\_2
|
|||||||
\\right ]
|
\\right ]
|
||||||
$$)
|
$$)
|
||||||
|
|
||||||
它在我们在之前的很多文章中都提及过,但并没有仔细的介绍过,从本篇开始终于要正式介绍它了,这个在2D和3D绘图中十分重要的角色Matrix(_Android中有两个Matrix,分别属于OpenGL 和 graphics, 本篇主要讲述的是graphics中的Matrix_),
|
它在我们在之前的很多文章中都提及过,但并没有仔细的介绍过,从本篇开始终于要正式介绍它了,这个在2D和3D绘图中十分重要的角色Matrix(_本篇讲述的是graphics中的Matrix_),
|
||||||
|
|
||||||
本篇的重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。
|
|
||||||
|
|
||||||
### Matrix 的翻译过来是矩阵,模型。和其释义相同,Matrix是一个矩阵,其作用则是一个模型,一个控制视图状态的模型。
|
### Matrix 的翻译过来是矩阵,模型。和其释义相同,Matrix是一个矩阵,其作用则是一个模型,一个控制视图状态的模型。
|
||||||
|
|
||||||
**Matrix 作为一个模型,主要功能就是数值转换,将一个坐标系中的点映射到另一个坐标系中,举个栗子:**
|
Matrix 作为一个模型,主要功能就是数值转换,将一个坐标系中的点映射到另一个坐标系中,举个栗子:
|
||||||
|
|
||||||
我的的手机屏幕作为物理设备,其坐标系肯定是从左上角开始的,而且是不会改变的,但我们在开发的时候通常不会使用这一坐标系,而是使用内容区的坐标系,通常情况下,我们的内容区和屏幕坐标系还相差一个通知栏加一个标题栏的距离,所以两者是不重合的,我们在内容区的坐标系中的内容最终绘制的时候肯定要转换为实际的屏幕坐标系来绘制,Matrix在此处的作用就是转换这些数值。
|
我的的手机屏幕作为物理设备,其坐标系肯定是从左上角开始的,而且是不会改变的,但我们在开发的时候通常不会使用这一坐标系,而是使用内容区的坐标系,通常情况下,我们的内容区和屏幕坐标系还相差一个通知栏加一个标题栏的距离,所以两者是不重合的,我们在内容区的坐标系中的内容最终绘制的时候肯定要转换为实际的屏幕坐标系来绘制,Matrix在此处的作用就是转换这些数值。
|
||||||
|
|
||||||
>
|
>
|
||||||
假设通知栏高度为20像素,导航栏高度为40像素,那么我们在内容区的(0,0)位置绘制一个点,最终就要转化为在实际坐标系中的(0,60)位置绘制一个点。
|
假设通知栏高度为20像素,导航栏高度为40像素,那么我们在内容区的(0,0)位置绘制一个点,最终就要转化为在实际坐标系中的(0,60)位置绘制一个点。
|
||||||
|
|
||||||
>
|
|
||||||
我们也知道,Android中点视图是可以嵌套的树形结构,每一个子View都有自己的坐标系,但实际绘制时都应当转换为实际的屏幕坐标系才能正确的绘制,所以让每一个子View都有一个Matrix,这样每一个View就都拥有了转换坐标的能力,可以非常方便的将各自的坐标系中的内容映射到屏幕坐标系中。
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -59,11 +55,6 @@ MPERSP\\_0 & MPERSP\\_1 & MPERSP\\_2
|
|||||||
$$)
|
$$)
|
||||||
|
|
||||||
|
|
||||||
**数值作用的介绍:**
|
|
||||||
|
|
||||||
>
|
|
||||||
根据名称我们就能猜到其大概作用,但有些效果是需要多个参数组合控制的,如下。
|
|
||||||
|
|
||||||
序号 | 名称 | 对应单词 | 摘要
|
序号 | 名称 | 对应单词 | 摘要
|
||||||
-----|----------|-------------|--------------
|
-----|----------|-------------|--------------
|
||||||
0 | MSCALE_X | scale | 控制X坐标 缩放,旋转
|
0 | MSCALE_X | scale | 控制X坐标 缩放,旋转
|
||||||
|
|||||||
Reference in New Issue
Block a user