- 所有已实现的接口:
-
Serializable
,Cloneable
- 直接已知的子类:
-
MediaSize
Size2DSyntax
是一个抽象基类,提供所有表示二维尺寸的属性的通用实现。
二维尺寸属性的值由两个项目组成,即X
维度和Y
维度。可以通过提供这两个值并指示值的测量单位来构造二维尺寸属性。提供了方法来返回二维尺寸属性的值,指示要返回值的单位。最常见的两种尺寸单位是英寸(in)和毫米(mm),并提供了导出常量INCH
和MM
用于指示这些单位。
一旦构造完成,二维尺寸属性的值就是不可变的。
设计
二维尺寸属性的X
和Y
维度值在内部以微米(µm)的整数形式存储,其中1微米= 10-6米= 1/1000毫米= 1/25400英寸。这允许尺寸以1/1000毫米(= 1 µm)或1/100英寸(= 254 µm)的精度精确表示。如果以负二次幂表示分数英寸,这允许尺寸以1/8英寸(= 3175 µm)的精度精确表示,但不是1/16英寸(因为1/16英寸不等于整数微米)。
在内部以µm的常见单位存储尺寸,使得可以比较两个尺寸属性,而不必考虑它们创建时的单位;例如,8.5英寸将与215.9毫米相等,因为它们都存储为215900 µm。例如,查找服务可以基于其序列化表示的相等性匹配分辨率属性,而不考虑它们创建时的单位。使用整数进行内部存储允许进行精确的相等比较,如果使用内部浮点表示,则不能保证这种精确性。请注意,如果您正在寻找以公制单位为单位的U.S. letter
大小的介质,您必须搜索尺寸为215.9 x 279.4毫米;四舍五入为整数的216 x 279毫米将不匹配。
导出常量INCH
实际上是将英寸乘以µm得到的转换因子。同样,导出常量MM
是将毫米乘以µm得到的转换因子。客户端可以通过提供自己的转换因子来指定以英寸或毫米之外的单位表示的分辨率值。但是,由于选择µm的内部单位时只考虑支持英寸和毫米这两种外部单位,因此不能保证客户端单位的转换因子是一个精确的整数。如果转换因子不是一个精确的整数,则客户端单位的分辨率值将无法精确存储。
- 参见:
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
Size2DSyntax
(float x, float y, int units) 从给定的浮点值构造一个新的二维尺寸属性。protected
Size2DSyntax
(int x, int y, int units) 从给定的整数值构造一个新的二维尺寸属性。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
返回此二维尺寸属性是否等同于传入的对象。float[]
getSize
(int units) 获取此二维尺寸属性的尺寸以给定单位为浮点值。float
getX
(int units) 返回此二维尺寸属性的X
维度以给定单位为浮点值。protected int
返回此二维尺寸属性的X
维度,单位为微米(µm)。float
getY
(int units) 返回此二维尺寸属性的Y
维度以给定单位为浮点值。protected int
返回此二维尺寸属性的Y
维度,单位为微米(µm)。int
hashCode()
返回此二维尺寸属性的哈希码值。toString()
返回此二维尺寸属性的字符串版本。返回此二维尺寸属性在给定单位中的字符串版本。
-
Field Details
-
INCH
public static final int INCH表示单位为英寸(in)的值。实际上是将英寸乘以µm得到的转换因子(25400)。- 参见:
-
MM
public static final int MM表示单位为毫米(mm)的值。实际上是将毫米乘以µm得到的转换因子(1000)。- 参见:
-
-
Constructor Details
-
Size2DSyntax
protected Size2DSyntax(float x, float y, int units) 从给定的浮点值构造一个新的二维尺寸属性。- 参数:
-
x
-X
维度 -
y
-Y
维度 -
units
- 单位转换因子,例如INCH
或MM
- 抛出:
-
IllegalArgumentException
- 如果x < 0
或y < 0
或units < 1
-
Size2DSyntax
protected Size2DSyntax(int x, int y, int units) 从给定的整数值构造一个新的二维尺寸属性。- 参数:
-
x
-X
维度 -
y
-Y
维度 -
units
- 单位转换因子,例如INCH
或MM
- 抛出:
-
IllegalArgumentException
- 如果x < 0
或y < 0
或units < 1
-
-
Method Details
-
getSize
public float[] getSize(int units) 获取此二维尺寸属性的尺寸以给定单位为浮点值。- 参数:
-
units
- 单位转换因子,例如INCH
或MM
- 返回:
-
包含
X
维度在索引0处和Y
维度在索引1处的双元素数组 - 抛出:
-
IllegalArgumentException
- 如果units < 1
-
getX
public float getX(int units) 返回此二维尺寸属性的X
维度以给定单位为浮点值。- 参数:
-
units
- 单位转换因子,例如INCH
或MM
- 返回:
-
X
维度 - 抛出:
-
IllegalArgumentException
- 如果units < 1
-
getY
public float getY(int units) 返回此二维尺寸属性的Y
维度以给定单位为浮点值。- 参数:
-
units
- 单位转换因子,例如INCH
或MM
- 返回:
-
Y
维度 - 抛出:
-
IllegalArgumentException
- 如果units < 1
-
toString
返回此二维尺寸属性在给定单位中的字符串版本。字符串采用"XxY U"
的形式,其中X是X
维度,Y是Y
维度,U是单位名称。值以浮点数显示。- 参数:
-
units
- 单位转换因子,例如INCH
或MM
-
unitsName
- 单位名称字符串,例如in
或mm
。如果为null
,则结果不附加单位名称 - 返回:
-
此二维尺寸属性的
String
版本 - 抛出:
-
IllegalArgumentException
- 如果units < 1
-
equals
返回此二维尺寸属性是否等同于传入的对象。要等同,必须满足以下所有条件:object
不是null
。object
是Size2DSyntax
类的实例。- 此属性的
X
维度等于object
的X
维度。 - 此属性的
Y
维度等于object
的Y
维度。
-
hashCode
public int hashCode()返回此二维尺寸属性的哈希码值。 -
toString
返回此二维大小属性的字符串版本。字符串采用形式"XxY um"
,其中X是X
维度,Y是Y
维度。这些值以微米为单位报告。 -
getXMicrometers
protected int getXMicrometers()返回此二维大小属性的X
维度,以微米(µm)为单位。(供子类使用。)- 返回:
-
X
维度(µm)
-
getYMicrometers
protected int getYMicrometers()返回此二维大小属性的Y
维度,以微米(µm)为单位。(供子类使用。)- 返回:
-
Y
维度(µm)
-