- 所有已实现的接口:
Serializable
,Cloneable
- 已知子类:
MediaSize
Size2DSyntax
是一个抽象基类,提供所有表示二维大小的属性的通用实现。
二维大小属性的值由两项组成,X
维度和Y
维度。可以通过提供两个值并指示测量值的单位来构建二维大小属性。提供了返回二维大小属性值的方法,指示返回值的单位。两种最常见的尺寸单位是英寸 (in) 和毫米 (mm),并提供导出常量 INCH
和 MM
来指示这些单位。
一旦构建,二维大小属性的值是不可变的。
Design
二维尺寸属性的 X
和 Y
尺寸值在内部存储为以微米 (µm) 为单位的整数,其中 1 微米 = 10-6米 = 1/1000 毫米 = 1/25400 英寸。这允许精确表示尺寸,精度为 1/1000 毫米(= 1 µm)或 1/100 英寸(= 254 µm)。如果小数英寸以 2 的负次方表示,这允许尺寸精确地表示为 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 时考虑到仅支持外部单位英寸和毫米,因此无法保证客户单位的转换因子将是一个精确的整数。如果转换因子不是精确的整数,则不会精确存储客户端单位的分辨率值。
- 参见:
-
字段摘要
字段 -
构造方法总结
构造方法修饰符构造方法描述protected
Size2DSyntax
(float x, float y, int units) 从给定的浮点值构造一个新的二维大小属性。protected
Size2DSyntax
(int x, int y, int units) 从给定的整数值构造一个新的二维大小属性。 -
方法总结
修饰符和类型方法描述boolean
返回这个二维大小属性是否等同于传入的对象。float[]
getSize
(int units) 以给定单位获取此二维尺寸属性的尺寸作为浮点值。float
getX
(int units) 以给定单位返回此二维大小属性的X
维度作为浮点值。protected int
以微米 (µm) 为单位返回此二维尺寸属性的X
尺寸。float
getY
(int units) 以给定单位返回此二维大小属性的Y
维度作为浮点值。protected int
以微米 (µm) 为单位返回此二维尺寸属性的Y
尺寸。int
hashCode()
返回此二维大小属性的哈希码值。toString()
返回此二维尺寸属性的字符串版本。以给定单位返回此二维尺寸属性的字符串版本。
-
字段详细信息
-
INCH
public static final int INCH以英寸 (in) 为单位表示的值。它实际上是将英寸乘以得到 µm (25400) 的转换因子。- 参见:
-
MM
public static final int MM数值以毫米 (mm) 为单位表示。它实际上是将 mm 乘以得到 µm (1000) 的转换因子。- 参见:
-
-
构造方法详细信息
-
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
-
-
方法详情
-
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()以微米 (µm) 为单位返回此二维尺寸属性的X
尺寸。 (用于子类。)- 返回:
X
尺寸 (µm)
-
getYMicrometers
protected int getYMicrometers()以微米 (µm) 为单位返回此二维尺寸属性的Y
尺寸。 (用于子类。)- 返回:
Y
尺寸 (µm)
-