阅读(3374) (11)

鸿蒙OS Rect

2022-10-28 10:36:35 更新

Rect

java.lang.Object

|---ohos.agp.utils.Rect

public class Rect
extends Object
implements Sequenceable

表示一个矩形区域。

该类用于在绘制或勾勒出矩形后,在屏幕上指定矩形区域。

Since:

1

嵌套类摘要

修饰符和类型 描述
static class Rect.RotationEnum 表示旋转角度。
从接口 ohos.utils.Sequenceable 继承的嵌套类/接口
Sequenceable.ProducerT

字段摘要

修饰符和类型 字段 描述
int bottom 指示矩形底部的 Y 坐标位置。
int left 表示矩形左侧 X 坐标的位置。
int right 表示矩形右侧X坐标的位置。
int top 指示矩形顶部的 Y 坐标位置。

构造函数摘要

构造函数 描述
Rect() 用于创建 Rect 实例的默认构造函数。
Rect(int left, int top, int right, int bottom) 用于创建 Rect 实例的构造函数。
Rect(Rect rect) 用于通过使用具有整数坐标的矩形来创建 Rect 实例的构造函数。

方法总结

修饰符和类型 方法 描述
void clear() 清除此矩形。
boolean contains(int left, int top, int right, int bottom) 检查指定的矩形是否在该矩形内或等于该矩形。
String convertRectToValue() 将当前矩形转换为指定模式“左上右下”的字符串。
static Rect convertValueToRect(String str) 将指定模式的字符串转换为矩形。
boolean equals(Object object) 指示其他对象是否“等于”这个对象。
void fetchParcel(Parcel parcel) 根据包裹中存储的数据设置矩形参数。
void fuse(int xCoor, int yCoor) 组合这个矩形和指定的点。
void fuse(int left, int top, int right, int bottom) 将此 Rect 与保存给定坐标的指定矩形融合。
void fuse(Rect rect) 将此 Rect 与指定的矩形融合。
int[] getCenter() 获取此 Rect 对象的中心点的坐标数组。
int getCenterX() 获取矩形的 X 轴中心。
int getCenterY() 获取矩形的 Y 轴中心。
int getHeight() 获取矩形的高度。
boolean getIntersectRect(int left, int top, int right, int bottom) 检查此 Rect 是否与具有给定坐标的指定矩形相交,如果它们相交,则将此 Rect 设置为该交点。
boolean getIntersectRect(Rect rect) 检查此 Rect 是否与指定的矩形相交,如果相交,则将此 Rect 设置为该相交。
boolean getIntersectRect(Rect rectA, Rect rectB) 检查两个指定的矩形是否相交,并将此矩形设置为该相交(如果有)。
Point getPivot() 获取枢轴的坐标,此 Rect 对象围绕该坐标旋转和缩放。
int getPivotXCoordinate() 获取枢轴的 X 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。
int getPivotYCoordinate() 获取枢轴的 Y 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。
Point getPreciseCenter() 获取此 Rect 对象的中心点坐标。
float getPreciseHorizontalCenter() 获取此 Rect 的精确水平中心的坐标。
float getPreciseVerticalCenter() 获取此 Rect 的精确垂直中心的坐标。
int[] getRectSize() 获取此 Rect 对象的大小。
int getWidth() 获取矩形的宽度。
int hashCode() 返回对象的哈希码值。
boolean isEmpty() 检查矩形是否为空。
boolean isInclude(int x, int y) 检查指定点是否在此 Rect 内。
boolean isInclude(int left, int top, int right, int bottom) 检查由 left、top、right 和 bottom 指定的矩形是否在此 Rect 对象内。
boolean isInclude(Point point) 检查指定点的坐标是否在此 Rect 对象内。
boolean isInclude(Rect rect) 检查指定的矩形是否在此 Rect 内。
boolean isIntersect(int left, int top, int right, int bottom) 检查此 Rect 是否与指定的矩形相交。
boolean isIntersect(Rect rect) 检查指定的矩形是否与此 Rect 对象相交。
static boolean isIntersect(Rect rectA, Rect rectB) 检查两个指定的矩形是否相交。
boolean marshalling(Parcel out) 将此 Sequenceable 对象编组为 Parcel。
void modify(Rect rect) 根据指定矩形的位置修改此 Rect 的位置。
Rect obtainIntersectRect(int left, int top, int right, int bottom) 获取此 Rect 对象与由左、上、右、下确定的矩形的交集矩形。
Rect obtainIntersectRect(Rect rect) 获取指定矩形与此 Rect 对象的交集矩形。
void offset(int dx, int dy) 将此矩形偏移指定距离。
void recordParcel(Parcel parcel) 将矩形的参数放入包裹中。
void reorder() 如果矩形无效,则交换上下边界和/或左右边界。
void rotateBy(Rect.RotationEnum rotationEnum) 将此 Rect 对象旋转指定的度数。
void scale(float scale) 设置此 Rect 对象的比例。
void set(int left, int top, int right, int bottom) 根据矩形四个边的位置设置矩形的形状和大小。
void setPivot(int x, int y) 设置枢轴,此 Rect 对象基于 x 和 y 围绕其旋转和缩放。
void setPivot(Point point) 设置枢轴,此 Rect 对象基于该点旋转和缩放。
void setPivotXCoordinate(int x) 设置枢轴的 X 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。
void setPivotYCoordinate(int y) 设置枢轴的 Y 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。
void shrink(int dx, int dy) 缩小这个矩形。
void sort() 如果此矩形无效,则交换左上角和右下角的 x 坐标和/或左上角和右下角的 y 坐标。
String toString() 返回对象的字符串表示形式。
void translate(int dx, int dy) 翻译这个矩形。
void translateCenterTo(int centerX, int centerY) 将此 Rect 对象的中心点平移到由 centerX 和 centerY 确定的新位置。
void translateCenterTo(Point point) 将此 Rect 对象的中心点转换为由点标识的新位置。
void translateTo(int newLeft, int newTop) 将此 Rect 转换到新位置。
boolean unmarshalling(Parcel in) 从 Parcel 中解组此 Sequenceable 对象。
boolean verifyRect() 检查此 Rect 对象是否有效。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
从接口 ohos.utils.Sequenceable 继承的方法
hasFileDescriptor

字段详细信息

bottom

public int bottom

指示矩形底部的 Y 坐标位置。

此变量定义屏幕上矩形底边所在的垂直轴上的 Y 坐标。

left

public int left

表示矩形左侧 X 坐标的位置。

该变量定义了屏幕上矩形左侧所在的水平轴上的 X 坐标。

right

public int right

表示矩形右侧X坐标的位置。

该变量定义了屏幕上矩形右侧所在的水平轴上的 X 坐标。

top

public int top

指示矩形顶部的 Y 坐标位置。

此变量定义垂直轴上的 Y 坐标,矩形的顶边位于屏幕上。

构造函数详细信息

Rect

public Rect()

用于创建 Rect 实例的默认构造函数。

该方法用于定义一个矩形对象,默认为屏幕左上角的点。

Rect

public Rect(int left, int top, int right, int bottom)

用于创建 Rect 实例的构造函数。

该方法用于根据坐标空间中四个边的位置定义一个矩形对象。

参数:

参数名称 参数描述
left 指示矩形对象左侧 X 坐标的位置。
top 指示矩形对象顶部的 Y 坐标位置。
right 表示矩形对象右侧 X 坐标的位置。
bottom 指示矩形对象底部的 Y 坐标位置。

Rect

public Rect(Rect rect)

用于通过使用具有整数坐标的矩形来创建 Rect 实例的构造函数。

参数:

参数名称 参数描述
rect 表示具有整数坐标的矩形。 有关详细信息,请参阅矩形。

Since:

3

方法详情

set

public void set(int left, int top, int right, int bottom)

根据矩形四个边的位置设置矩形的形状和大小。

参数:

参数名称 参数描述
left 指示矩形对象左侧 X 坐标的位置。
top 指示矩形对象顶部的 Y 坐标位置。
right 表示矩形对象右侧 X 坐标的位置。
bottom 指示矩形对象底部的 Y 坐标位置。

isEmpty

public final boolean isEmpty()

检查矩形是否为空。

返回:

如果矩形为空,则返回 true; 否则返回 false。

Since:

3

verifyRect

public final boolean verifyRect()

检查此 Rect 对象是否有效。

返回:

如果矩形左上角的 X 轴和 Y 轴坐标小于矩形右下角的 X 轴和 Y 轴坐标,则返回 true; 否则返回 false。

Since:

4

getWidth

public final int getWidth()

获取矩形的宽度。

如果矩形的右值小于左值,则返回负值。

返回:

返回矩形的宽度。

Since:

3

getHeight

public final int getHeight()

获取矩形的高度。

如果矩形的底部值小于顶部值,则返回负值。

返回:

返回矩形的高度。

Since:

3

getCenterX

public final int getCenterX()

获取矩形的 X 轴中心。

矩形的 X 轴中心由向下舍入的整数表示。

返回:

返回矩形的 X 轴中心。

Since:

3

getCenterY

public final int getCenterY()

获取矩形的 Y 轴中心。

矩形的 Y 轴中心由四舍五入的整数表示。

返回:

返回矩形的 Y 轴中心。

Since:

3

getCenter

public int[] getCenter()

获取此 Rect 对象的中心点的坐标数组。

返回:

返回包含此 Rect 对象中心点坐标的数组。 第一个值表示 X 轴上的值,第二个值表示 Y 轴上的值。

Since:

4

getRectSize

public int[] getRectSize()

获取此 Rect 对象的大小。

返回:

返回一个整数数组。 第一个值表示宽度,第二个值表示高度。

Since:

4

equals

public boolean equals(Object object)

指示其他对象是否“等于”这个对象。

equals 方法在非空对象引用上实现等价关系:

  • 它是自反的:对于任何非空引用值 x,x.equals(x) 应该返回 true。
  • 它是对称的:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应该返回 true。
  • 它是可传递的:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true 并且 y.equals(z) 返回 true,则 x.equals(z) 应该返回 true。
  • 它是一致的:对于任何非空引用值 x 和 y,x.equals(y) 的多次调用始终返回 true 或始终返回 false,前提是没有修改对象上 equals 比较中使用的信息。
  • 对于任何非空引用值 x,x.equals(null) 应该返回 false。

Object 类的 equals 方法实现了对象上最有区别的可能等价关系; 也就是说,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象(x == y 的值为 true)时,此方法才返回 true。

请注意,每当重写该方法时,通常都需要重写 hashCode 方法,以维护 hashCode 方法的一般约定,即相等的对象必须具有相等的哈希码。

覆盖:

类 Object 中的等于

参数:

参数名称 参数描述
object 要与之比较的参考对象。

返回:

如果此对象与 obj 参数相同,则为 true; 否则为 false。

hashCode

public int hashCode()

返回对象的哈希码值。 支持这种方法是为了有利于哈希表,例如 HashMap 提供的那些。

hashCode 的一般合约是:

  • 每当在 Java 应用程序执行期间对同一对象多次调用时,hashCode 方法必须始终返回相同的整数,前提是没有修改对象上相等比较中使用的信息。 该整数不需要从应用程序的一次执行到同一应用程序的另一次执行保持一致。
  • 如果两个对象根据 equals(Object) 方法相等,则对两个对象中的每一个调用 hashCode 方法必须产生相同的整数结果。
  • 如果根据 Object.equals(java.lang.Object) 方法,如果两个对象不相等,则不要求对两个对象中的每一个调用 hashCode 方法必须产生不同的整数结果。 但是,程序员应该意识到,为不相等的对象生成不同的整数结果可能会提高哈希表的性能。

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

覆盖:

类 Object 中的 hashCode

返回:

此对象的哈希码值。

toString

public String toString()

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

Object 类的 toString 方法返回一个字符串,该字符串由对象作为其实例的类的名称、at 符号字符“@”和对象哈希码的无符号十六进制表示形式组成。 换句话说,此方法返回一个等于以下值的字符串:

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

覆盖:

类 Object 中的 toString

返回:

对象的字符串表示形式。

marshalling

public boolean marshalling(Parcel out)

从接口复制的描述:Sequenceable

将此 Sequenceable 对象编组为 Parcel。

指定者:

接口 Sequenceable 中的编组

参数:

参数名称 参数描述
out 指示将 Sequenceable 对象编组到的 Parcel 对象。

返回:

如果编组成功,则返回 true; 否则返回 false。

unmarshalling

public boolean unmarshalling(Parcel in)

从接口复制的描述:Sequenceable

从 Parcel 中解组此 Sequenceable 对象。

指定者:

在接口 Sequenceable 中解组

参数:

参数名称 参数描述
in 指示已将 Sequenceable 对象编组到的 Parcel 对象。

返回:

如果解组成功,则返回 true; 否则返回 false。

isInclude

public boolean isInclude(int x, int y)

检查指定点是否在此 Rect 内。

参数:

参数名称 参数描述
x 表示指定点的X坐标。
y 表示指定点的Y坐标。

返回:

如果指定点在此 Rect 内,则返回 true; 否则返回 false。

Since:

3

isInclude

public boolean isInclude(Point point)

检查指定点的坐标是否在此 Rect 对象内。

返回:

如果指定点的坐标在此 Rect 对象内,则返回 true; 否则返回 false。

Since:

4

isInclude

public boolean isInclude(Rect rect)

检查指定的矩形是否在此 Rect 内。

参数:

参数名称 参数描述
rect 表示指定的矩形。

返回:

如果指定的矩形在此 Rect 内,则返回 true; 否则返回 false。

Since:

3

isInclude

public boolean isInclude(int left, int top, int right, int bottom)

检查由 left、top、right 和 bottom 指定的矩形是否在此 Rect 对象内。

参数:

参数名称 参数描述
left 表示指定矩形的左边界。
top 表示指定矩形的上边界。
right 表示指定矩形的右边界。
bottom 表示指定矩形的下边界。

返回:

如果指定的矩形在此 Rect 对象内,则返回 true; 否则返回 false。

Since:

4

getPreciseHorizontalCenter

public final float getPreciseHorizontalCenter()

获取此 Rect 的精确水平中心的坐标。

返回:

返回矩形精确水平中心的坐标。

Since:

3

getPreciseVerticalCenter

public final float getPreciseVerticalCenter()

获取此 Rect 的精确垂直中心的坐标。

返回:

返回矩形精确垂直中心的坐标。

Since:

3

getPreciseCenter

public Point getPreciseCenter()

获取此 Rect 对象的中心点坐标。

返回:

返回表示此 Rect 对象中心点坐标的 Point 对象。

Since:

4

setPivot

public void setPivot(int x, int y)

设置枢轴,此 Rect 对象基于 x 和 y 围绕其旋转和缩放。

参数:

参数名称 参数描述
x 指示要设置的枢轴的 X 轴坐标。
y 指示要设置的枢轴的 Y 轴坐标。

Since:

4

setPivot

public void setPivot(Point point)

设置枢轴,此 Rect 对象基于该点旋转和缩放。

参数:

参数名称 参数描述
point 指示要设置的枢轴的坐标。

Since:

4

setPivotXCoordinate

public void setPivotXCoordinate(int x)

设置枢轴的 X 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。

参数:

参数名称 参数描述
x 指示要设置的枢轴的 X 轴坐标。

Since:

4

setPivotYCoordinate

public void setPivotYCoordinate(int y)

设置枢轴的 Y 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。

参数:

参数名称 参数描述
y 指示要设置的枢轴的 Y 轴坐标。

Since:

4

getPivot

public Point getPivot()

获取枢轴的坐标,此 Rect 对象围绕该坐标旋转和缩放。

返回:

返回枢轴的坐标。

Since:

4

getPivotXCoordinate

public int getPivotXCoordinate()

获取枢轴的 X 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。

返回:

返回枢轴的 X 轴坐标。

Since:

4

getPivotYCoordinate

public int getPivotYCoordinate()

获取枢轴的 Y 轴坐标,此 Rect 对象围绕该坐标旋转和缩放。

返回:

返回枢轴的 Y 轴坐标。

Since:

4

fetchParcel

public void fetchParcel(Parcel parcel)

根据包裹中存储的数据设置矩形参数。

参数:

参数名称 参数描述
parcel 表示包裹。

recordParcel

public void recordParcel(Parcel parcel)

将矩形的参数放入包裹中。

参数:

参数名称 参数描述
parcel 表示包裹。

scale

public void scale(float scale)

设置此 Rect 对象的比例。

参数:

参数名称 参数描述
scale 表示要设置的比例。

Since:

4

rotateBy

public void rotateBy(Rect.RotationEnum rotationEnum)

将此 Rect 对象旋转指定的度数。

参数:

参数名称 参数描述
rotationEnum 指示此 Rect 对象将旋转的度数。

Since:

4

shrink

public void shrink(int dx, int dy)

缩小这个矩形。

参数:

参数名称 参数描述
dx 表示要缩小的水平长度,以像素为单位。
dy 指示要收缩的垂直长度,以像素为单位。

Since:

3

isIntersect

public static boolean isIntersect(Rect rectA, Rect rectB)

检查两个指定的矩形是否相交。

参数:

参数名称 参数描述
rectA 表示要检查的一个矩形。
rectB 指示要检查的另一个矩形。

返回:

如果两个指定的矩形相交,则返回 true; 否则返回 false。

Since:

3

translate

public void translate(int dx, int dy)

翻译这个矩形。

参数:

参数名称 参数描述
dx 指示要平移的水平长度,以像素为单位。
dy 指示要平移的垂直长度,以像素为单位。

Since:

3

translateTo

public void translateTo(int newLeft, int newTop)

将此 Rect 转换到新位置。

参数:

参数名称 参数描述
newLeft 表示新位置矩形左上角的X坐标。
newTop 表示新位置矩形左上角的Y坐标。

Since:

3

translateCenterTo

public void translateCenterTo(int centerX, int centerY)

将此 Rect 对象的中心点平移到由 centerX 和 centerY 确定的新位置。

参数:

参数名称 参数描述
centerX 指示矩形新中心点的 X 轴坐标。
centerY 指示矩形新中心点的 Y 轴坐标。

Since:

4

translateCenterTo

public void translateCenterTo(Point point)

将此 Rect 对象的中心点转换为由点标识的新位置。

参数:

参数名称 参数描述
point 指示矩形新中心点的坐标。

Since:

4

modify

public void modify(Rect rect)

根据指定矩形的位置修改此 Rect 的位置。

参数:

参数名称 参数描述
rect 表示指定的矩形。

Since:

3

clear

public void clear()

清除此矩形。

Since:

3

fuse

public void fuse(int left, int top, int right, int bottom)

将此 Rect 与保存给定坐标的指定矩形融合。

参数:

参数名称 参数描述
left 表示指定矩形左上角的X坐标。
top 表示指定矩形左上角的Y坐标。
right 表示指定矩形右下角的X坐标。
bottom 表示指定矩形右下角的Y坐标。

Since:

3

fuse

public void fuse(Rect rect)

将此 Rect 与指定的矩形融合。

参数:

参数名称 参数描述
rect 表示指定的矩形。

Since:

3

fuse

public void fuse(int xCoor, int yCoor)

组合这个矩形和指定的点。

参数:

参数名称 参数描述
xCoor 表示指定点的X坐标。
yCoor 表示指定点的Y坐标。

Since:

5

getIntersectRect

public boolean getIntersectRect(int left, int top, int right, int bottom)

检查此 Rect 是否与具有给定坐标的指定矩形相交,如果它们相交,则将此 Rect 设置为该交点。

参数:

参数名称 参数描述
left 表示指定矩形左上角的X坐标。
top 表示指定矩形左上角的Y坐标。
right 表示指定矩形右下角的X坐标。
bottom 表示指定矩形右下角的Y坐标。

返回:

如果此 Rect 与指定的矩形相交,则返回 true; 否则返回 false。

Since:

3

getIntersectRect

public boolean getIntersectRect(Rect rect)

检查此 Rect 是否与指定的矩形相交,如果相交,则将此 Rect 设置为该相交。

参数:

参数名称 参数描述
rect 表示指定的矩形。

返回:

如果此 Rect 与指定的矩形相交,则返回 true; 否则返回 false。

Since:

3

isIntersect

public boolean isIntersect(int left, int top, int right, int bottom)

检查此 Rect 是否与指定的矩形相交。

参数:

参数名称 参数描述
left 表示指定矩形左上角的X坐标。
top 表示指定矩形左上角的Y坐标。
right 表示指定矩形右下角的X坐标。
bottom 表示指定矩形右下角的Y坐标。

返回:

如果此 Rect 与指定的矩形相交,则返回 true; 否则返回 false。

Since:

3

isIntersect

public boolean isIntersect(Rect rect)

检查指定的矩形是否与此 Rect 对象相交。

参数:

参数名称 参数描述
rect 指示要检查的矩形。

返回:

如果此 Rect 对象与指定的矩形相交,则返回 true; 否则返回 false。

Since:

4

obtainIntersectRect

public Rect obtainIntersectRect(int left, int top, int right, int bottom)

获取此 Rect 对象与由左、上、右、下确定的矩形的交集矩形。

参数:

参数名称 参数描述
left 表示指定矩形左上角的X轴坐标。
top 表示指定矩形左上角的Y轴坐标。
right 表示指定矩形右下角的X轴坐标。
bottom 表示指定矩形右下角的Y轴坐标。

返回:

返回指定矩形与此 Rect 对象的相交矩形。

Since:

4

obtainIntersectRect

public Rect obtainIntersectRect(Rect rect)

获取指定矩形与此 Rect 对象的交集矩形。

参数:

参数名称 参数描述
rect 表示指定的矩形。

返回:

返回指定矩形与此 Rect 对象的相交矩形。

Since:

4

reorder

public void reorder()

如果矩形无效,则交换上下边界和/或左右边界。

Since:

5

getIntersectRect

public boolean getIntersectRect(Rect rectA, Rect rectB)

检查两个指定的矩形是否相交,并将此矩形设置为该相交(如果有)。

参数:

参数名称 参数描述
rectA 表示第一个矩形。
rectB 表示第二个矩形。

返回:

如果两个指定的矩形相交,则返回 true; 否则返回 false。

Since:

5

convertRectToValue

public String convertRectToValue()

将当前矩形转换为指定模式“左上右下”的字符串。

返回:

返回矩形的字符串表示形式。

Since:

5

convertValueToRect

public static Rect convertValueToRect(String str)

将指定模式的字符串转换为矩形。

参数:

参数名称 参数描述
str 表示指定模式“左上右下”的字符串。

返回:

返回一个矩形。

Since:

5

offset

public void offset(int dx, int dy)

将此矩形偏移指定距离。

参数:

参数名称 参数描述
dx 表示矩形在 x 轴上的偏移量。
dy 表示矩形在 y 轴上的偏移量。

Since:

5

contains

public boolean contains(int left, int top, int right, int bottom)

检查指定的矩形是否在该矩形内或等于该矩形。

参数:

参数名称 参数描述
left 表示指定矩形左上角的 x 坐标。
top 表示指定矩形左上角的 y 坐标。
right 表示指定矩形右下角的 x 坐标。
bottom 表示指定矩形右下角的 y 坐标。

返回:

如果指定的矩形在该矩形内或等于该矩形,则返回 true; 否则返回 false。

Since:

5

sort

public void sort()

如果此矩形无效,则交换左上角和右下角的 x 坐标和/或左上角和右下角的 y 坐标。

Since:

5