- java.lang.Object
-
- java.awt.font.GlyphMetrics
-
public final class GlyphMetrics extends Object
GlyphMetrics
类代表单个字形的信息。 字形是一个或多个字符的视觉表示。 可以使用许多不同的字形来表示单个字符或字符的组合。GlyphMetrics
实例由Font
生成,并且适用于特定Font
的特定字形。标志是标准,LIGATURE,组合或组件。
- 标准字形通常用于表示单个字符。
- LIGATURE字形用于表示字符序列。
-
GlyphVector
中的 COMPONENT字形与文本模型中的特定字符不对应。 相反,COMPONENT字形被添加为排版原因,如阿拉伯语对齐。 - 组合字形修饰STANDARD或LIGATURE字形,如重音符号。 拼贴不会在组合字形之前出现。
通过
GlyphMetrics
提供的其他指标是前进,视觉界限和左右侧轴承的组件。用于旋转字体的字形,或从向字形应用旋转的
GlyphVector
获得的字形可以具有包含X和Y组件的进步。 通常进步只有一个组件。字形的前进是从字形的原点到下一个字形的原点的距离,其基线是垂直的或水平的。 请注意,在
GlyphVector
,由于字距或其他定位调整,从字形到其下一个字形的距离可能不是字形的前进。边界是完全包含字形轮廓的最小矩形。 边界矩形是相对于字形的起点。 左侧轴承是从字形起点到其边界矩形左侧的距离。 如果左侧轴承为负,则字形的一部分将绘制在其原点的左侧。 右侧轴承是从边界矩形右侧到下一个字形起点(原点加上前进)的距离。 如果为负,则字形的一部分将被绘制在下一个字形起点的右侧。 请注意,由于光栅化和像素调整效果,边界不一定会包含渲染字形时影响的所有像素。
虽然可以直接构建
GlyphMetrics
实例,但它们几乎总是从GlyphVector
获得。 一旦构造,GlyphMetrics
对象是不可变的。示例 :
查询
Font
的字形信息Font font = ...; int glyphIndex = ...; GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex); int isStandard = metrics.isStandard(); float glyphAdvance = metrics.getAdvance();
- 另请参见:
-
Font
,GlyphVector
-
-
Field Summary
Fields Modifier and Type Field 描述 static byte
COMBINING
表示表示组合字符的字形,例如变音符号。static byte
COMPONENT
表示后备存储中没有相应字符的字形。static byte
LIGATURE
表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。static byte
STANDARD
表示表示单个标准字符的字形。static byte
WHITESPACE
表示没有视觉表示的字形。
-
构造方法摘要
构造方法 Constructor 描述 GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
构造一个GlyphMetrics
对象。GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
构造一个GlyphMetrics
对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 float
getAdvance()
返回字符沿基线的前进(水平或垂直)。float
getAdvanceX()
返回字形前进的x分量。float
getAdvanceY()
返回字形前进的y分量。Rectangle2D
getBounds2D()
返回字形的边界。float
getLSB()
返回字形的左(上)侧方向。float
getRSB()
返回字形的右侧(底部)侧面。int
getType()
返回原始字形类型代码。boolean
isCombining()
如果这是一个组合字形,则返回true
。boolean
isComponent()
如果这是一个组件字形,则返回true
。boolean
isLigature()
如果这是一个连字符,返回true
。boolean
isStandard()
如果这是标准字形,则返回true
。boolean
isWhitespace()
返回true
如果这是一个空白字形。
-
-
-
字段详细信息
-
STANDARD
public static final byte STANDARD
表示表示单个标准字符的字形。- 另请参见:
- Constant Field Values
-
LIGATURE
public static final byte LIGATURE
表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。 后面是填充字形的剩余字符。 填充和组合字形可以混合,以控制在逻辑上的连字上的重音标记的定位。- 另请参见:
- Constant Field Values
-
COMBINING
public static final byte COMBINING
表示表示组合字符的字形,例如变音符号。 这个字形与上一个字形之间没有插入位置。- 另请参见:
- Constant Field Values
-
COMPONENT
public static final byte COMPONENT
表示后备存储中没有相应字符的字形。 字形与由逻辑上前面的非组件字形表示的字符相关联。 这用于kashida对齐或其他对现有字形的视觉修改。 这个字形与上一个字形之间没有插入位置。- 另请参见:
- Constant Field Values
-
WHITESPACE
public static final byte WHITESPACE
表示没有视觉表示的字形。 它可以添加到其他代码值以指示不可见的字形。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
GlyphMetrics
public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
构造一个GlyphMetrics
对象。- 参数
-
advance
- 字形的前进宽度 -
bounds
- 字形的黑框边界 -
glyphType
- 字形的类型
-
GlyphMetrics
public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
构造一个GlyphMetrics
对象。- 参数
-
horizontal
- 如果为真,度量用于水平基准,否则它们用于垂直基线 -
advanceX
- 字形提前的X分量 -
advanceY
- 字形提前的Y分量 -
bounds
- 字形的视觉界限 -
glyphType
- 字形的类型 - 从以下版本开始:
- 1.4
-
-
方法详细信息
-
getAdvance
public float getAdvance()
返回字符沿基线的前进(水平或垂直)。- 结果
- 字形的进步
-
getAdvanceX
public float getAdvanceX()
返回字形前进的x分量。- 结果
- 字形前进的x分量
- 从以下版本开始:
- 1.4
-
getAdvanceY
public float getAdvanceY()
返回字形前进的y分量。- 结果
- 字形前进的y分量
- 从以下版本开始:
- 1.4
-
getBounds2D
public Rectangle2D getBounds2D()
返回字形的边界。 这是字形轮廓的边框。 由于光栅化和像素对齐效果,它不一定包含渲染字形时受影响的像素。- 结果
-
一个
Rectangle2D
是字形的边界。
-
getLSB
public float getLSB()
返回字形的左(上)侧方向。这是从0,0到字形边界的左边(顶部)的距离。 如果字形的边界位于(上)原点的左侧,则LSB为负。
- 结果
- 字形的左侧方位。
-
getRSB
public float getRSB()
返回字形的右侧(底部)侧面。这是从右边(底部)的字形边界到前进的距离。 如果字形的边界在(下)的右侧,则RSB为负。
- 结果
- 右侧的字形轴承。
-
getType
public int getType()
返回原始字形类型代码。- 结果
- 原始字形类型代码。
-
isStandard
public boolean isStandard()
如果这是标准字形,则返回true
。- 结果
-
true
如果这是标准字形; 否则为false
。
-
isLigature
public boolean isLigature()
如果这是连字字形,则返回true
。- 结果
-
true
如果这是一个连字符号; 否则为false
。
-
isCombining
public boolean isCombining()
如果这是一个组合字形,则返回true
。- 结果
-
true
如果这是一个组合字形; 否则为false
。
-
isComponent
public boolean isComponent()
如果这是一个组件字形,则返回true
。- 结果
-
true
如果这是一个组件字形; 否则为false
。
-
isWhitespace
public boolean isWhitespace()
如果这是一个空白字形,返回true
。- 结果
-
true
如果这是一个空白字形; 否则为false
。
-
-