java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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 分量

getAdvanceY

public float getAdvanceY()
返回字形 advance 的 y 分量。

返回:
字形 advance 的 y 分量

getBounds2D

public Rectangle2D getBounds2D()
返回该字形的边界。这是该字形轮廓的边界框。因为光栅化和像素对齐的影响,在呈现字形时,它不一定包括受影响的像素。

返回:
该字形边界的 Rectangle2D

getLSB

public float getLSB()
返回该字形的左(上)跨距。

这是从 0, 0 到该字形边界的左(上)边的距离。如果该字形的边界在原点的左(上)边,则 LSB 为负。

返回:
该字形的左跨距。

getRSB

public float getRSB()
返回该字形的右(底)跨距。

这是从该字形边界的右(底)边到该 advance 的距离。如果该字形的边界在 advance 的右(下)边,则 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

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策