Most visited

Recently visited

Added in API level 1

Matrix

public class Matrix
extends Object

java.lang.Object
   ↳ android.graphics.Matrix


Matrix类拥有一个3x3矩阵来转换坐标。

Summary

Nested classes

枚举 Matrix.ScaleToFit

控制src rect如何对齐setRectToRect()的dst矩形。

Constants

int MPERSP_0

int MPERSP_1

int MPERSP_2

int MSCALE_X

int MSCALE_Y

int MSKEW_X

int MSKEW_Y

int MTRANS_X

int MTRANS_Y

Public constructors

Matrix()

创建一个单位矩阵

Matrix(Matrix src)

创建一个矩阵,它是src的(深)副本

Public methods

boolean equals(Object obj)

如果obj是矩阵并且其值等于我们的值,则返回true。

void getValues(float[] values)

将矩阵中的9个值复制到数组中。

int hashCode()

返回对象的哈希码值。

boolean invert(Matrix inverse)

如果这个矩阵可以反转,则返回true,如果inverse不为null,则将inverse设置为该矩阵的逆矩阵。

boolean isAffine()

获取这个矩阵是否仿射。

boolean isIdentity()

如果矩阵是标识,则返回true。

void mapPoints(float[] dst, int dstIndex, float[] src, int srcIndex, int pointCount)

将此矩阵应用于由src指定的2D点阵列,并将变换后的点写入由dst指定的点阵列中。

void mapPoints(float[] dst, float[] src)

将此矩阵应用于由src指定的2D点阵列,并将变换后的点写入由dst指定的点阵列中。

void mapPoints(float[] pts)

将此矩阵应用于2D点阵列,并将变换后的点写回到数组中

float mapRadius(float radius)

在矩阵映射后返回圆的平均半径。

boolean mapRect(RectF rect)

将这个矩阵应用到矩形中,然后将变换后的矩形写回到矩形中。

boolean mapRect(RectF dst, RectF src)

将此矩阵应用于src矩形,并将转换后的矩形写入dst。

void mapVectors(float[] vecs)

将这个矩阵应用到2D矢量阵列中,并将变换后的矢量写回到数组中。

void mapVectors(float[] dst, int dstIndex, float[] src, int srcIndex, int vectorCount)

将此矩阵应用于由src指定的2D矢量阵列,并将变换后的矢量写入由dst指定的矢量阵列中。

void mapVectors(float[] dst, float[] src)

将此矩阵应用于由src指定的2D矢量阵列,并将变换后的矢量写入由dst指定的矢量阵列中。

boolean postConcat(Matrix other)

用指定的矩阵后验矩阵。

boolean postRotate(float degrees, float px, float py)

用指定的旋转后置矩阵。

boolean postRotate(float degrees)

用指定的旋转后置矩阵。

boolean postScale(float sx, float sy, float px, float py)

使用指定的比例后矩阵。

boolean postScale(float sx, float sy)

使用指定的比例后矩阵。

boolean postSkew(float kx, float ky)

用指定的偏斜后矩阵。

boolean postSkew(float kx, float ky, float px, float py)

用指定的偏斜后矩阵。

boolean postTranslate(float dx, float dy)

用指定的翻译后置矩阵。

boolean preConcat(Matrix other)

用指定的矩阵预处理矩阵。

boolean preRotate(float degrees)

用指定的旋转预处理矩阵。

boolean preRotate(float degrees, float px, float py)

用指定的旋转预处理矩阵。

boolean preScale(float sx, float sy)

使用指定的比例预处理矩阵。

boolean preScale(float sx, float sy, float px, float py)

使用指定的比例预处理矩阵。

boolean preSkew(float kx, float ky)

用指定的偏斜预处理矩阵。

boolean preSkew(float kx, float ky, float px, float py)

用指定的偏斜预处理矩阵。

boolean preTranslate(float dx, float dy)

用指定的翻译预处理矩阵。

boolean rectStaysRect()

如果将矩形映射到另一个矩形,则返回true。

void reset()

将矩阵设置为标识

void set(Matrix src)

(深)将src矩阵复制到此矩阵中。

boolean setConcat(Matrix a, Matrix b)

将矩阵设置为两个指定矩阵的连接并返回true。

boolean setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount)

设置矩阵,使得指定的src点将映射到指定的dst点。

boolean setRectToRect(RectF src, RectF dst, Matrix.ScaleToFit stf)

将矩阵设置为比例并转换将源矩形映射到目标矩形的值,如果可以表示结果,则返回true。

void setRotate(float degrees, float px, float py)

将矩阵设置为以指定的度数旋转,其中的轴心点位于(px,py)处。

void setRotate(float degrees)

将矩阵设置为以(0,0)为中心旋转指定的度数。

void setScale(float sx, float sy)

将矩阵设置为通过sx和sy进行缩放。

void setScale(float sx, float sy, float px, float py)

将矩阵设置为通过sx和sy进行缩放,其中的轴心点位于(px,py)处。

void setSinCos(float sinValue, float cosValue, float px, float py)

将矩阵设置为以指定的正弦和余弦值旋转,其中的轴心点位于(px,py)处。

void setSinCos(float sinValue, float cosValue)

将矩阵设置为按指定的正弦和余弦值旋转。

void setSkew(float kx, float ky)

将矩阵设置为通过sx和sy偏斜。

void setSkew(float kx, float ky, float px, float py)

将矩阵设置为通过sx和sy偏斜,其中的轴心点位于(px,py)处。

void setTranslate(float dx, float dy)

将矩阵设置为通过(dx,dy)进行平移。

void setValues(float[] values)

将数组中的9个值复制到矩阵中。

String toShortString()
String toString()

返回对象的字符串表示形式。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Constants

MPERSP_0

Added in API level 1
int MPERSP_0

常数值:6(0x00000006)

MPERSP_1

Added in API level 1
int MPERSP_1

常量值:7(0x00000007)

MPERSP_2

Added in API level 1
int MPERSP_2

常量值:8(0x00000008)

MSCALE_X

Added in API level 1
int MSCALE_X

常量值:0(0x00000000)

MSCALE_Y

Added in API level 1
int MSCALE_Y

常量值:4(0x00000004)

MSKEW_X

Added in API level 1
int MSKEW_X

常数值:1(0x00000001)

MSKEW_Y

Added in API level 1
int MSKEW_Y

常量值:3(0x00000003)

MTRANS_X

Added in API level 1
int MTRANS_X

Constant Value: 2 (0x00000002)

MTRANS_Y

Added in API level 1
int MTRANS_Y

常量值:5(0x00000005)

Public constructors

Matrix

Added in API level 1
Matrix ()

创建一个单位矩阵

Matrix

Added in API level 1
Matrix (Matrix src)

创建一个矩阵,它是src的(深)副本

Parameters
src Matrix: The matrix to copy into this matrix

Public methods

equals

Added in API level 1
boolean equals (Object obj)

如果obj是矩阵并且其值等于我们的值,则返回true。

Parameters
obj Object: the reference object with which to compare.
Returns
boolean true if this object is the same as the obj argument; false otherwise.

getValues

Added in API level 1
void getValues (float[] values)

将矩阵中的9个值复制到数组中。

Parameters
values float

hashCode

Added in API level 1
int hashCode ()

返回对象的哈希码值。 为了散列表的好处而支持此方法,例如由HashMap提供的HashMap

hashCode的总合同是:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

尽可能合理实用,由类Object定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)

Returns
int a hash code value for this object.

invert

Added in API level 1
boolean invert (Matrix inverse)

如果这个矩阵可以反转,则返回true,如果inverse不为null,则将inverse设置为该矩阵的逆矩阵。 如果这个矩阵不能反转,忽略反转并返回false。

Parameters
inverse Matrix
Returns
boolean

isAffine

Added in API level 21
boolean isAffine ()

获取这个矩阵是否仿射。 仿射矩阵保留直线并且没有视角。

Returns
boolean Whether the matrix is affine.

isIdentity

Added in API level 1
boolean isIdentity ()

如果矩阵是标识,则返回true。 这可能比测试更快(getType()== 0)

Returns
boolean

mapPoints

Added in API level 1
void mapPoints (float[] dst, 
                int dstIndex, 
                float[] src, 
                int srcIndex, 
                int pointCount)

将此矩阵应用于由src指定的2D点阵列,并将变换后的点写入由dst指定的点阵列中。 这两个数组将它们的“点”表示为浮点对[x,y]。

Parameters
dst float: The array of dst points (x,y pairs)
dstIndex int: The index of the first [x,y] pair of dst floats
src float: The array of src points (x,y pairs)
srcIndex int: The index of the first [x,y] pair of src floats
pointCount int: The number of points (x,y pairs) to transform

mapPoints

Added in API level 1
void mapPoints (float[] dst, 
                float[] src)

将此矩阵应用于由src指定的2D点阵列,并将变换后的点写入由dst指定的点阵列中。 这两个数组将它们的“点”表示为浮点对[x,y]。

Parameters
dst float: The array of dst points (x,y pairs)
src float: The array of src points (x,y pairs)

mapPoints

Added in API level 1
void mapPoints (float[] pts)

将此矩阵应用于2D点阵列,并将变换后的点写回到数组中

Parameters
pts float: The array [x0, y0, x1, y1, ...] of points to transform.

mapRadius

Added in API level 1
float mapRadius (float radius)

在矩阵映射后返回圆的平均半径。 注:在透视图中,该值假定圆的中心位于原点。

Parameters
radius float
Returns
float

mapRect

Added in API level 1
boolean mapRect (RectF rect)

将这个矩阵应用到矩形中,然后将变换后的矩形写回到矩形中。 这是通过转换矩形的四个角,然后将其设置为这些点的边界来实现的

Parameters
rect RectF: The rectangle to transform.
Returns
boolean the result of calling rectStaysRect()

mapRect

Added in API level 1
boolean mapRect (RectF dst, 
                RectF src)

将此矩阵应用于src矩形,并将转换后的矩形写入dst。 这是通过转换src的4个角落,然后将dst设置为这些点的边界来实现的。

Parameters
dst RectF: Where the transformed rectangle is written.
src RectF: The original rectangle to be transformed.
Returns
boolean the result of calling rectStaysRect()

mapVectors

Added in API level 1
void mapVectors (float[] vecs)

将这个矩阵应用到2D矢量阵列中,并将变换后的矢量写回到数组中。 注意:此方法不适用与矩阵相关的翻译。 如果您想要应用翻译,请使用mapPoints(float[])

Parameters
vecs float: The array [x0, y0, x1, y1, ...] of vectors to transform.

mapVectors

Added in API level 1
void mapVectors (float[] dst, 
                int dstIndex, 
                float[] src, 
                int srcIndex, 
                int vectorCount)

将此矩阵应用于由src指定的2D矢量阵列,并将变换后的矢量写入由dst指定的矢量阵列中。 这两个数组将它们的“向量”表示为浮点数对[x,y]。 注意:此方法不适用与矩阵相关的翻译。 如果您想要应用翻译,请使用mapPoints(float[], int, float[], int, int)

Parameters
dst float: The array of dst vectors (x,y pairs)
dstIndex int: The index of the first [x,y] pair of dst floats
src float: The array of src vectors (x,y pairs)
srcIndex int: The index of the first [x,y] pair of src floats
vectorCount int: The number of vectors (x,y pairs) to transform

mapVectors

Added in API level 1
void mapVectors (float[] dst, 
                float[] src)

将此矩阵应用于由src指定的2D矢量阵列,并将变换后的矢量写入由dst指定的矢量阵列中。 这两个数组将它们的“向量”表示为浮点数对[x,y]。 注意:此方法不适用与矩阵相关的翻译。 如果您想要应用翻译,请使用mapPoints(float[], float[])

Parameters
dst float: The array of dst vectors (x,y pairs)
src float: The array of src vectors (x,y pairs)

postConcat

Added in API level 1
boolean postConcat (Matrix other)

用指定的矩阵后验矩阵。 M'=其他* M

Parameters
other Matrix
Returns
boolean

postRotate

Added in API level 1
boolean postRotate (float degrees, 
                float px, 
                float py)

用指定的旋转后置矩阵。 M'= R(度,px,py)* M

Parameters
degrees float
px float
py float
Returns
boolean

postRotate

Added in API level 1
boolean postRotate (float degrees)

用指定的旋转后置矩阵。 M'= R(度)* M

Parameters
degrees float
Returns
boolean

postScale

Added in API level 1
boolean postScale (float sx, 
                float sy, 
                float px, 
                float py)

使用指定的比例后矩阵。 M'= S(sx,sy,px,py)* M

Parameters
sx float
sy float
px float
py float
Returns
boolean

postScale

Added in API level 1
boolean postScale (float sx, 
                float sy)

使用指定的比例后矩阵。 M'= S(sx,sy)* M

Parameters
sx float
sy float
Returns
boolean

postSkew

Added in API level 1
boolean postSkew (float kx, 
                float ky)

用指定的偏斜后矩阵。 M'= K(kx,ky)* M

Parameters
kx float
ky float
Returns
boolean

postSkew

Added in API level 1
boolean postSkew (float kx, 
                float ky, 
                float px, 
                float py)

用指定的偏斜后矩阵。 M'= K(kx,ky,px,py)* M

Parameters
kx float
ky float
px float
py float
Returns
boolean

postTranslate

Added in API level 1
boolean postTranslate (float dx, 
                float dy)

用指定的翻译后置矩阵。 M'= T(dx,dy)* M

Parameters
dx float
dy float
Returns
boolean

preConcat

Added in API level 1
boolean preConcat (Matrix other)

用指定的矩阵预处理矩阵。 M'= M *其他

Parameters
other Matrix
Returns
boolean

preRotate

Added in API level 1
boolean preRotate (float degrees)

用指定的旋转预处理矩阵。 M'= M * R(度)

Parameters
degrees float
Returns
boolean

preRotate

Added in API level 1
boolean preRotate (float degrees, 
                float px, 
                float py)

用指定的旋转预处理矩阵。 M'= M * R(度,px,py)

Parameters
degrees float
px float
py float
Returns
boolean

preScale

Added in API level 1
boolean preScale (float sx, 
                float sy)

使用指定的比例预处理矩阵。 M'= M * S(sx,sy)

Parameters
sx float
sy float
Returns
boolean

preScale

Added in API level 1
boolean preScale (float sx, 
                float sy, 
                float px, 
                float py)

使用指定的比例预处理矩阵。 M'= M * S(sx,sy,px,py)

Parameters
sx float
sy float
px float
py float
Returns
boolean

preSkew

Added in API level 1
boolean preSkew (float kx, 
                float ky)

用指定的偏斜预处理矩阵。 M'= M * K(kx,ky)

Parameters
kx float
ky float
Returns
boolean

preSkew

Added in API level 1
boolean preSkew (float kx, 
                float ky, 
                float px, 
                float py)

用指定的偏斜预处理矩阵。 M'= M * K(kx,ky,px,py)

Parameters
kx float
ky float
px float
py float
Returns
boolean

preTranslate

Added in API level 1
boolean preTranslate (float dx, 
                float dy)

用指定的翻译预处理矩阵。 M'= M * T(dx,dy)

Parameters
dx float
dy float
Returns
boolean

rectStaysRect

Added in API level 1
boolean rectStaysRect ()

如果将矩形映射到另一个矩形,则返回true。 如果矩阵是标识,仅标度或旋转90度的倍数,则这可以是真实的。

Returns
boolean

reset

Added in API level 1
void reset ()

将矩阵设置为标识

set

Added in API level 1
void set (Matrix src)

(深)将src矩阵复制到此矩阵中。 如果src为空,则将此矩阵重置为单位矩阵。

Parameters
src Matrix

setConcat

Added in API level 1
boolean setConcat (Matrix a, 
                Matrix b)

将矩阵设置为两个指定矩阵的连接并返回true。

这两个矩阵中的任何一个也可能是目标矩阵,即 matrixA.setConcat(matrixA, matrixB);是有效的。

GINGERBREAD_MR1及更低版本中,只有在可以表示结果的情况下,此函数才返回true。 HONEYCOMB及以上,它总是返回true。

Parameters
a Matrix
b Matrix
Returns
boolean

setPolyToPoly

Added in API level 1
boolean setPolyToPoly (float[] src, 
                int srcIndex, 
                float[] dst, 
                int dstIndex, 
                int pointCount)

设置矩阵,使得指定的src点将映射到指定的dst点。 “点”表示为一个浮点数组,顺序为[x0,y0,x1,y1,...],其中每个“点”为2个浮点值。

Parameters
src float: The array of src [x,y] pairs (points)
srcIndex int: Index of the first pair of src values
dst float: The array of dst [x,y] pairs (points)
dstIndex int: Index of the first pair of dst values
pointCount int: The number of pairs/points to be used. Must be [0..4]
Returns
boolean true if the matrix was set to the specified transformation

setRectToRect

Added in API level 1
boolean setRectToRect (RectF src, 
                RectF dst, 
                Matrix.ScaleToFit stf)

将矩阵设置为比例并转换将源矩形映射到目标矩形的值,如果可以表示结果,则返回true。

Parameters
src RectF: the source rectangle to map from.
dst RectF: the destination rectangle to map to.
stf Matrix.ScaleToFit: the ScaleToFit option
Returns
boolean true if the matrix can be represented by the rectangle mapping.

setRotate

Added in API level 1
void setRotate (float degrees, 
                float px, 
                float py)

将矩阵设置为以指定的度数旋转,其中的轴心点位于(px,py)处。 枢轴点是指定转换时应保持不变的坐标。

Parameters
degrees float
px float
py float

setRotate

Added in API level 1
void setRotate (float degrees)

将矩阵设置为以(0,0)为中心旋转指定的度数。

Parameters
degrees float

setScale

Added in API level 1
void setScale (float sx, 
                float sy)

将矩阵设置为通过sx和sy进行缩放。

Parameters
sx float
sy float

setScale

Added in API level 1
void setScale (float sx, 
                float sy, 
                float px, 
                float py)

将矩阵设置为通过sx和sy进行缩放,其中的轴心点位于(px,py)处。 枢轴点是指定转换时应保持不变的坐标。

Parameters
sx float
sy float
px float
py float

setSinCos

Added in API level 1
void setSinCos (float sinValue, 
                float cosValue, 
                float px, 
                float py)

将矩阵设置为以指定的正弦和余弦值旋转,其中的轴心点位于(px,py)处。 枢轴点是指定转换时应保持不变的坐标。

Parameters
sinValue float
cosValue float
px float
py float

setSinCos

Added in API level 1
void setSinCos (float sinValue, 
                float cosValue)

将矩阵设置为按指定的正弦和余弦值旋转。

Parameters
sinValue float
cosValue float

setSkew

Added in API level 1
void setSkew (float kx, 
                float ky)

将矩阵设置为通过sx和sy偏斜。

Parameters
kx float
ky float

setSkew

Added in API level 1
void setSkew (float kx, 
                float ky, 
                float px, 
                float py)

将矩阵设置为通过sx和sy偏斜,其中的轴心点位于(px,py)处。 枢轴点是指定转换时应保持不变的坐标。

Parameters
kx float
ky float
px float
py float

setTranslate

Added in API level 1
void setTranslate (float dx, 
                float dy)

将矩阵设置为通过(dx,dy)进行平移。

Parameters
dx float
dy float

setValues

Added in API level 1
void setValues (float[] values)

将数组中的9个值复制到矩阵中。 根据Matrix的实现,这些可能会被转换为矩阵中的16.16个整数,这样随后对getValues()的调用将不会产生完全相同的值。

Parameters
values float

toShortString

Added in API level 1
String toShortString ()

Returns
String

toString

Added in API level 1
String toString ()

返回对象的字符串表示形式。 通常, toString方法将返回一个“文本地表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

Protected methods

finalize

Added in API level 1
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法以处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何行动,包括使该对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

Objectfinalize方法Object执行特殊操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定的对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对对象调用 finalize方法后,不会采取进一步的操作,直到Java虚拟机再次确定不再有任何途径可以通过任何尚未死亡的线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机不会多次调用 finalize方法。

finalize方法引发的任何异常 finalize导致此对象的终止被暂停,但会被忽略。

Throws
Throwable

Hooray!