|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.font
类 GlyphMetrics
java.lang.Object java.awt.font.GlyphMetrics
-
public final class GlyphMetrics
- extends Object
GlyphMetrics
类表示单个字形的信息。字形是一个或多个字符的可视化表示形式。可以使用多个不同的字形来表示单个字符或字符组合。GlyphMetrics
实例由 Font
生成,并可应用于特定 Font
中的具体字形。
字形可以是 STANDARD、LIGATURE、COMBINING 或 COMPONENT。
- STANDARD 字形通常用于表示单个字符。
- LIGATURE 字形用于表示字符序列。
GlyphVector
中的 COMPONENT 字形不对应文本模型中的特定字符。取而代之的是,由于印刷原因(如阿拉伯语调整)添加 COMPONENT 字形。- COMBINING 字形修饰 STANDARD 或 LIGATURE 字形,例如,重音符号。插入符 (caret) 不会出现在 COMBINING 字形的前面。
通过 GlyphMetrics
可使用的其他规格是 advance、可视边界以及左跨距和右跨距分量。
对于旋转字体的字形或从已对字形应用旋转的 GlyphVector
获得的字形,可以具有包含 X 和 Y 分量的 advance。advance 通常仅有一个分量。
字形的 advance 是从该字形原点沿基线(可以是垂直的,也可以是水平的)到下一个字形原点的距离。注意,在 GlyphVector
中,由于字距调整和其他位置调整,所以从一个字形到其下一个字形之间的距离可能不是该字形的 advance。
边界是完全包含该字形轮廓的最小矩形。边界矩形是相对于该字形原点的。左跨距是从字形原点到其边界矩形左边的距离。如果左跨距为负,则将该字形的一部分绘制到其原点的左边。右跨距是从该边界矩形的右边到下一个字形原点的距离(原点加上 advance)。如果为负,则将该字形的一部分绘制到下一个字形原点的右边。注意,当呈现该字形时,由于光栅化和像素调整效果,该边界不一定包括受到影响的所有像素。
虽然可以直接构造 GlyphMetrics
的实例,但是几乎总是从 GlyphVector
获取它们。一旦构造 GlyphMetrics
对象之后,它就是不可变的。
示例:
查询 Font
,了解字形信息
Font font = ...; int glyphIndex = ...; GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex); int isStandard = metrics.isStandard(); float glyphAdvance = metrics.getAdvance();
- 另请参见:
-
Font
,GlyphVector
字段摘要 | |
---|---|
static byte |
COMBINING 指示表示组合字符的字形,例如元音变音。 |
static byte |
COMPONENT 指示在内部存储中没有相应字符的字形。 |
static byte |
LIGATURE 指示将多个字符表示成连字(例如,'fi' 或 'ffi')的字形。 |
static byte |
STANDARD 指示表示单个标准字符的字形。 |
static byte |
WHITESPACE 指示一个无可视化表示形式的字形。 |
构造方法摘要 | |
---|---|
GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType) 构造一个 GlyphMetrics 对象。 |
|
GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType) 构造一个 GlyphMetrics 对象。 |
方法摘要 | |
---|---|
float |
getAdvance() 返回沿基线(水平基线或垂直基线)的字形 advance。 |
float |
getAdvanceX() 返回字形 advance 的 x 分量。 |
float |
getAdvanceY() 返回字形 advance 的 y 分量。 |
Rectangle2D |
getBounds2D() 返回该字形的边界。 |
float |
getLSB() 返回该字形的左(上)跨距。 |
float |
getRSB() 返回该字形的右(底)跨距。 |
int |
getType() 返回原始字形类型代码。 |
boolean |
isCombining() 如果这是一个组合字形,则返回 true 。 |
boolean |
isComponent() 如果这是一个分量字形,则返回 true 。 |
boolean |
isLigature() 如果这是一个连字字形,则返回 true 。 |
boolean |
isStandard() 如果这是一个标准字形,则返回 true 。 |
boolean |
isWhitespace() 如果这是一个空白字形,则返回 true 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
STANDARD
public static final byte STANDARD
-
指示表示单个标准字符的字形。
- 另请参见:
- 常量字段值
LIGATURE
public static final byte LIGATURE
-
指示将多个字符表示成连字(例如,'fi' 或 'ffi')的字形。它后跟用于剩余字符的填充字形。可以将填充字形和组合字形混合,以控制重音符号逻辑上在前置连字上的位置。
- 另请参见:
- 常量字段值
COMBINING
public static final byte COMBINING
-
指示表示组合字符的字形,例如元音变音。在此字形和前置字形之间没有插入符的位置。
- 另请参见:
- 常量字段值
COMPONENT
public static final byte COMPONENT
-
指示在内部存储中没有相应字符的字形。该字形与逻辑前置无分量字形表示的字符关联。这用于 kashida 调整或其他现有字形的可视修改。在此字形和前置字形之间没有插入符的位置。
- 另请参见:
- 常量字段值
WHITESPACE
public static final byte WHITESPACE
-
指示一个无可视化表示形式的字形。可将其添加到其他代码值,以指示可见字形。
- 另请参见:
- 常量字段值
构造方法详细信息 |
---|
GlyphMetrics
public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
-
构造一个
GlyphMetrics
对象。- 参数:
-
advance
- 该字形的 advance 宽度 -
bounds
- 该字形的黑框边界 -
glyphType
- 该字形的类型
GlyphMetrics
public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
-
构造一个
GlyphMetrics
对象。- 参数:
-
horizontal
- 如果为 true,则规格用于水平基线;否则用于垂直基线 -
advanceX
- 该字形的 advance 的 X 分量 -
advanceY
- 该字形的 advance 的 Y 分量 -
bounds
- 该字形的可视化边界 -
glyphType
- 该字形的类型
方法详细信息 |
---|
getAdvance
public float getAdvance()
- 返回沿基线(水平基线或垂直基线)的字形 advance。
-
- 返回:
- 该字形的 advance
getAdvanceX
public float getAdvanceX()
- 返回字形 advance 的 x 分量。
-
- 返回:
- 字形 advance 的 x 分量