public final class GlyphMetrics extends Object
GlyphMetrics
类代表单个字形的信息。
字形是一个或多个字符的视觉表示。
可以使用许多不同的字形来表示单个字符或字符的组合。
GlyphMetrics
实例所生产的Font
并且在特定的适用于一个特定的字形Font
。
标志是标准,LIGATURE,组合或组件。
GlyphVector
不对应文本模型中的特定字符。 相反,COMPONENT字形被添加为排版原因,如阿拉伯语对齐。 通过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
Modifier and Type | Field and Description |
---|---|
static byte |
COMBINING
表示表示组合字符的字形,例如变音符号。
|
static byte |
COMPONENT
表示后备存储中没有相应字符的字形。
|
static byte |
LIGATURE
表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。
|
static byte |
STANDARD
表示表示单个标准字符的字形。
|
static byte |
WHITESPACE
表示没有视觉表示的字形。
|
Constructor and Description |
---|
GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
构造一个
GlyphMetrics 对象。
|
GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
构造一个
GlyphMetrics 对象。
|
Modifier and Type | Method and Description |
---|---|
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 。
|
public static final byte STANDARD
public static final byte LIGATURE
public static final byte COMBINING
public static final byte COMPONENT
public static final byte WHITESPACE
public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
GlyphMetrics
对象。
advance
- 字形的前进宽度
bounds
- 字形的黑框边界
glyphType
- 字形的类型
public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
GlyphMetrics
对象。
horizontal
- 如果为真,度量是针对水平基线,否则它们是垂直基线
advanceX
- 字形前进的X分量
advanceY
- 字形提前的Y分量
bounds
- 字形的视觉界限
glyphType
- 字形的类型
public float getAdvance()
public float getAdvanceX()
public float getAdvanceY()
public Rectangle2D getBounds2D()
Rectangle2D
是字形的边界。
public float getLSB()
这是从0,0到字形边界的左边(顶部)的距离。 如果字形的边界位于(上)原点的左侧,则LSB为负。
public float getRSB()
这是从右边(底部)的字形边界到前进的距离。 如果字形的边界在(下)的右侧,则RSB为负。
public int getType()
public boolean isStandard()
true
。
true
如果这是标准字形;
false
否则。
public boolean isLigature()
true
。
true
如果这是一个连字符号;
false
否则。
public boolean isCombining()
true
。
true
如果这是一个组合字形;
false
否则。
public boolean isComponent()
true
。
true
如果这是一个组件字形;
false
否则。
public boolean isWhitespace()
true
。
true
如果这是一个空白字形;
false
否则。