| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.awt.font.GlyphMetrics
public final class GlyphMetrics
GlyphMetrics 类表示单个字形的信息。字形是一个或多个字符的可视化表示形式。可以使用多个不同的字形来表示单个字符或字符组合。GlyphMetrics 实例由 Font 生成,并可应用于特定 Font 中的具体字形。
 
字形可以是 STANDARD、LIGATURE、COMBINING 或 COMPONENT。
GlyphVector 中的 COMPONENT 字形不对应文本模型中的特定字符。取而代之的是,由于印刷原因(如阿拉伯语调整)添加 COMPONENT 字形。
通过 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 | 
| 字段详细信息 | 
|---|
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 - 该字形的 advance 宽度bounds - 该字形的黑框边界glyphType - 该字形的类型
public GlyphMetrics(boolean horizontal,
                    float advanceX,
                    float advanceY,
                    Rectangle2D bounds,
                    byte glyphType)
GlyphMetrics 对象。
horizontal - 如果为 true,则规格用于水平基线;否则用于垂直基线advanceX - 该字形的 advance 的 X 分量advanceY - 该字形的 advance 的 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()
这是从该字形边界的右(底)边到该 advance 的距离。如果该字形的边界在 advance 的右(下)边,则 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。| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。