Files
AndroidNote/CustomView/Advance/[9]Matrix_Basic.md
2016-06-26 21:30:06 +08:00

2.2 KiB
Raw Blame History

Matrix基础

前面扯了四篇 Path 相关的内容,本次终于要到了大家期盼已久的 Matrix(传说中的黑客帝国!!!):

如题,本篇的主角是 Matrix(其实并不是黑客帝国来着)。

仔细会想一下,我们在很多地方都见过 Matrix(画布操作drawBitmappath 等) 感觉它就像是一个烦人家伙,什么事情都想插上一脚。 然而实际情况却并非如此, Matrix 一直都在我们看不到的地方默默付出着, 如果没有了 Matrix 我们之前的很多方法都是无法运行的。

这么说来 Matrix 也算个厉害人物,那么这个 Matrix 到底是何方神圣呢?

Matrix 的翻译过来是矩阵模型。和其释义相同Matrix是一个矩阵其作用则是一个模型一个控制视图状态的模型。

我们之前在 Canvas之画布操作 中讲解过不少画布相关操作,这些操作的核心就是改变 Matrix 的数值。

Matrix方法表

Matrix 有很多常用和不常用的方法,在本篇中重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。

方法类别 相关API 摘要
比较方法 equals hashCode 比较、 获取哈希值
基本方法 set reset setValues getValues 设置、 重置、 设置数值、 获取数值
矩阵相关 invert isAffine isIdentity 计算逆矩阵、 是否是仿射矩阵、 是否是单位矩阵
数值计算 mapPoints mapRect mapVectors 计算 点、 矩形、 阵列 经过变换后点位置
设置(set) setConcat setRotate setScale setSkew setTranslate 设置变换
前乘(pre) preConcat preRotate preScale preSkew preTranslate 前乘变换
后乘(post) postConcat postRotate postScale postSkew postTranslate 后乘变换