Files
AndroidNote/CustomView/Advance/[9]Matrix_Basic.md
2016-06-26 01:32:34 +08:00

1.9 KiB
Raw Blame History

Matrix基础

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

勇敢的骚年啊,你是选择红药丸还是选择蓝药丸呢?

我选蓝色的,不要问我为什么。

好了,言止于此,不能说更多了,下面开始我们本篇的正题。

前言

如题,本篇的主角是 Matrix在 Canvas 中很多地方都有 Matrix 的身影,如: 画布操作drawBitmappath 等。几乎无处不在,那么 Matrix 到底是干什么的呢?

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

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

Matrix方法表

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

方法类别 相关API 摘要
比较 equals 比较两个矩阵是否相同
获取数值 getValues 获取矩阵的数值
获取哈希值 hashCode 获取矩阵的哈希值
获取逆矩阵 invert 如果矩阵可逆,获取其逆矩阵
是否是仿射矩阵 isAffine 判断是否是仿射矩阵
是否是单位矩阵 isIdentity 判断是否是单位矩阵
获取变换后位置 mapPoints 计算一个点在变换后点的位置
获取变换后位置 mapRect 计算一个矩形变换后点位置
获取变换后位置 mapVectors 计算一个向量阵列变换后点位置
后乘 postConcat 原始矩阵后乘一个新的矩阵