public final class TextAttribute extends AttributedCharacterIterator.Attribute
TextAttribute
类定义了用于文本呈现的属性键和属性值。
TextAttribute
实例用作属性键中标识的属性Font
, TextLayout
, AttributedCharacterIterator
,和其它类处理文本属性。 此类中定义的其他常量可用作属性值。
对于每个文本属性,文档提供:
null
被视为与默认值相同,并导致默认行为。 TextAttribute.WEIGHT_BOLD
和new Float(2.0)
表示相同的WEIGHT
。 Number
(用于WEIGHT
, WIDTH
, POSTURE
, SIZE
, JUSTIFICATION
和TRACKING
)可沿其自然的范围内变化,并且不限制于预定义的常量。 Number.floatValue()
用于从Number
获取实际值。 WEIGHT
, WIDTH
和POSTURE
由系统,它可以选择“最近的可用”字体或使用其他技术来近似用户的请求内插。 FAMILY
String See Font DIALOG
, DIALOG_INPUT
,SERIF
, SANS_SERIF
, and MONOSPACED
. "Default" (use platform default) WEIGHT
Number WEIGHT_REGULAR, WEIGHT_BOLD WEIGHT_REGULAR WIDTH
Number WIDTH_CONDENSED, WIDTH_REGULAR,POSTURE
Number POSTURE_REGULAR, POSTURE_OBLIQUE POSTURE_REGULAR SIZE
Number none 12.0 TRANSFORM
TransformAttribute
See TransformAttribute IDENTITY
TransformAttribute.IDENTITY SUPERSCRIPT
Integer SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB 0 (use the standard glyphs and metrics) FONT
Font
none null (do not override font resolution) CHAR_REPLACEMENT
GraphicAttribute
none null (draw text using font glyphs) FOREGROUND
Paint
none null (use current graphics paint) BACKGROUND
Paint
none null (do not render background) UNDERLINE
Integer UNDERLINE_ON -1 (do not render underline) STRIKETHROUGH
Boolean STRIKETHROUGH_ON false (do not render strikethrough) RUN_DIRECTION
Boolean RUN_DIRECTION_LTRBidi
standard default) BIDI_EMBEDDING
Integer none 0 (use base line direction) JUSTIFICATION
Number JUSTIFICATION_FULL JUSTIFICATION_FULL INPUT_METHOD_HIGHLIGHT
InputMethodHighlight
,Annotation
(see class) null (do not apply input highlighting) INPUT_METHOD_UNDERLINE
Integer UNDERLINE_LOW_ONE_PIXEL,SWAP_COLORS
Boolean SWAP_COLORS_ON false (do not swap colors) NUMERIC_SHAPING
NumericShaper
none null (do not shape digits) KERNING
Integer KERNING_ON 0 (do not request kerning) LIGATURES
Integer LIGATURES_ON 0 (do not form optional ligatures) TRACKING
Number TRACKING_LOOSE, TRACKING_TIGHT 0 (do not add tracking)
Font
, TextLayout
, AttributedCharacterIterator
, Serialized Form
Modifier and Type | Field and Description |
---|---|
static TextAttribute |
BACKGROUND
用于渲染文本背景的绘画的属性键。
|
static TextAttribute |
BIDI_EMBEDDING
文本嵌入级别的属性键。
|
static TextAttribute |
CHAR_REPLACEMENT
用于用户定义的字形显示的属性键代替字符的字体标准字形。
|
static TextAttribute |
FAMILY
字体名称的属性键。
|
static TextAttribute |
FONT
用于提供用于呈现文本的字体的属性键。
|
static TextAttribute |
FOREGROUND
用于渲染文本的颜色的属性键。
|
static TextAttribute |
INPUT_METHOD_HIGHLIGHT
输入法高亮样式的属性键。
|
static TextAttribute |
INPUT_METHOD_UNDERLINE
输入法的属性键加下划线。
|
static TextAttribute |
JUSTIFICATION
段落的理由的属性关键。
|
static Float |
JUSTIFICATION_FULL
将线对齐为满请求宽度。
|
static Float |
JUSTIFICATION_NONE
不要让线路有道理。
|
static TextAttribute |
KERNING
要求字距调整的属性键。
|
static Integer |
KERNING_ON
请求标准字距。
|
static TextAttribute |
LIGATURES
启用可选连字的属性键。
|
static Integer |
LIGATURES_ON
请求标准可选连字。
|
static TextAttribute |
NUMERIC_SHAPING
将ASCII十进制数字转换为其他小数范围的属性键。
|
static TextAttribute |
POSTURE
字体姿势的属性键。
|
static Float |
POSTURE_OBLIQUE
标准斜体姿势。
|
static Float |
POSTURE_REGULAR
标准姿势,直立。
|
static TextAttribute |
RUN_DIRECTION
行的运行方向的属性键。
|
static Boolean |
RUN_DIRECTION_LTR
从左到右的运行方向。
|
static Boolean |
RUN_DIRECTION_RTL
从右到左的运行方向。
|
static TextAttribute |
SIZE
字体大小的属性键。
|
static TextAttribute |
STRIKETHROUGH
删除线的属性键。
|
static Boolean |
STRIKETHROUGH_ON
一个删除线。
|
static TextAttribute |
SUPERSCRIPT
上标和下标的属性键。
|
static Integer |
SUPERSCRIPT_SUB
标准下标。
|
static Integer |
SUPERSCRIPT_SUPER
标准上标。
|
static TextAttribute |
SWAP_COLORS
用于交换前景和背景的
Paints 键
Paints 。
|
static Boolean |
SWAP_COLORS_ON
交换前景和背景。
|
static TextAttribute |
TRACKING
属性键控制跟踪。
|
static Float |
TRACKING_LOOSE
执行松动跟踪。
|
static Float |
TRACKING_TIGHT
执行紧跟踪。
|
static TextAttribute |
TRANSFORM
用于转换字体的属性键。
|
static TextAttribute |
UNDERLINE
下划线的属性键。
|
static Integer |
UNDERLINE_LOW_DASHED
单像素虚线低下划线。
|
static Integer |
UNDERLINE_LOW_DOTTED
单像素点下划线。
|
static Integer |
UNDERLINE_LOW_GRAY
双像素灰色低下划线。
|
static Integer |
UNDERLINE_LOW_ONE_PIXEL
单像素固体低下划线。
|
static Integer |
UNDERLINE_LOW_TWO_PIXEL
双像素固体低下划线。
|
static Integer |
UNDERLINE_ON
标准下划线。
|
static TextAttribute |
WEIGHT
字体重量的属性键。
|
static Float |
WEIGHT_BOLD
标准大胆的体重。
|
static Float |
WEIGHT_DEMIBOLD
重量轻于
WEIGHT_BOLD 。
|
static Float |
WEIGHT_DEMILIGHT
中间重量在
WEIGHT_LIGHT 和
WEIGHT_STANDARD 之间。
|
static Float |
WEIGHT_EXTRA_LIGHT
最轻的预定义重量。
|
static Float |
WEIGHT_EXTRABOLD
重量过重
|
static Float |
WEIGHT_HEAVY
重量比
WEIGHT_BOLD 重
WEIGHT_BOLD 。
|
static Float |
WEIGHT_LIGHT
标准重量轻。
|
static Float |
WEIGHT_MEDIUM
中间重量在
WEIGHT_REGULAR 和
WEIGHT_BOLD 之间。
|
static Float |
WEIGHT_REGULAR
标准重量。
|
static Float |
WEIGHT_SEMIBOLD
重量比
WEIGHT_REGULAR 重
WEIGHT_REGULAR 。
|
static Float |
WEIGHT_ULTRABOLD
最重的预定义重量。
|
static TextAttribute |
WIDTH
字体宽度的属性键。
|
static Float |
WIDTH_CONDENSED
最浓缩的预定宽度。
|
static Float |
WIDTH_EXTENDED
最大的预定宽度。
|
static Float |
WIDTH_REGULAR
标准宽度。
|
static Float |
WIDTH_SEMI_CONDENSED
中等浓度的宽度。
|
static Float |
WIDTH_SEMI_EXTENDED
中等宽度的宽度。
|
INPUT_METHOD_SEGMENT, LANGUAGE, READING
Modifier | Constructor and Description |
---|---|
protected |
TextAttribute(String name)
构造一个
TextAttribute 具有指定名称。
|
Modifier and Type | Method and Description |
---|---|
protected Object |
readResolve()
解析反序列化为预定义常量的实例。
|
equals, getName, hashCode, toString
public static final TextAttribute FAMILY
String
。
默认值为"Default"
,这将导致使用平台默认字体系列。
所述Font
类定义的逻辑字体名常量DIALOG
, DIALOG_INPUT
, SANS_SERIF
, SERIF
和MONOSPACED
。
这将将name
传递给Font
构造函数的值定义。 逻辑和物理字体名称都是允许的。 如果未找到具有请求名称的字体,则使用默认字体。
注意:这个属性不幸被命名,因为它指定了面部名称,而不仅仅是家庭。 因此,诸如“Lucida Sans Bold”这样的值将选择该面部存在。 但是,请注意,如果请求的脸部不存在,默认值将以常规权重使用。 名称中的“Bold”是脸部名称的一部分,而不是单独的请求,字体的重量是粗体。
public static final TextAttribute WEIGHT
Number
。
默认值为WEIGHT_REGULAR
。
提供了几个常量值,见WEIGHT_EXTRA_LIGHT
, WEIGHT_LIGHT
, WEIGHT_DEMILIGHT
, WEIGHT_REGULAR
, WEIGHT_SEMIBOLD
, WEIGHT_MEDIUM
, WEIGHT_DEMIBOLD
, WEIGHT_BOLD
, WEIGHT_HEAVY
, WEIGHT_EXTRABOLD
和WEIGHT_ULTRABOLD
。 值WEIGHT_BOLD
对应的样式值Font.BOLD
被传递到Font
构造。
该值大致是杆宽与常规重量的比值。
系统可以内插提供的值。
public static final Float WEIGHT_DEMILIGHT
WEIGHT_LIGHT
和
WEIGHT_STANDARD
之间。
WEIGHT
public static final Float WEIGHT_MEDIUM
WEIGHT_REGULAR
和
WEIGHT_BOLD
之间。
WEIGHT
public static final TextAttribute WIDTH
Number
。
默认值为WIDTH_REGULAR
。
提供了几个常量值,见WIDTH_CONDENSED
, WIDTH_SEMI_CONDENSED
, WIDTH_REGULAR
, WIDTH_SEMI_EXTENDED
, WIDTH_EXTENDED
。
该值大致是前进宽度与正常宽度的比率。
系统可以内插提供的值。
public static final TextAttribute POSTURE
Number
。
默认值为POSTURE_REGULAR
。
提供两个常数值, POSTURE_REGULAR
和POSTURE_OBLIQUE
。 值POSTURE_OBLIQUE
对应于样式值Font.ITALIC
传递给Font
构造函数。
该值大体上是字体的斜率,表示为上升。 正值正确。
系统可以内插提供的值。
这将影响Font.getItalicAngle
返回的字体斜体角度。
Font.getItalicAngle()
public static final TextAttribute SIZE
Number
。
默认值为12pt。
这对应于size
函数的Font
参数。
非常大或小的尺寸将影响渲染性能,并且渲染系统可能不会以这些尺寸呈现文本。 负大小是非法的,并导致默认大小。
请注意,具有2x变换的12pt字体的外观和度量可能与不具有变换的24点字体的外观和度量不同。
public static final TextAttribute TRANSFORM
TransformAttribute
。
默认值为TransformAttribute.IDENTITY
。
TransformAttribute
类定义了常量IDENTITY
。
这对应于转换为Font.deriveFont(AffineTransform)
。 由于该变换是可变的, TextAttribute
值不能为TransformAttribute
封装类。
主要目的是支持缩放和倾斜,尽管其他效果也是可能的。
一些变换将导致基线被旋转和/或移位。 将文本和基线一起转换,使文本符合新的基线。 例如,对于水平基线上的文本,新的基线遵循通过变换的单位x向量的方向。 文本度量是根据这个新的基线测量的。 所以,例如,在其他方面相同的情况下,用旋转的TRANSFORM和未旋转的TRANSFORM呈现的文本将被测量为具有相同的上升,下降和提前。
在样式文本中,每个此类运行的基准一个接一个对齐,以便为整个文本运行创建一个非线性基线。 有关更多信息,请参阅TextLayout.getLayoutPath()
。
TransformAttribute
, AffineTransform
public static final TextAttribute SUPERSCRIPT
Integer
。
默认值为0,这意味着不使用上标或下标。
提供两个常数值,参见SUPERSCRIPT_SUPER
和SUPERSCRIPT_SUB
。 这些值分别为1和-1。 更大幅度的数值定义了更高水平的上标或下标,例如,2对应于超上标3,超超上标,对于负值和下标也相似,高达7(或-7)的水平。 保留超出此范围的值; 行为依赖于平台。
SUPERSCRIPT
可以影响字体的上升和下降。 然而,上升和下降永远不会变成消极的。
public static final Integer SUPERSCRIPT_SUPER
SUPERSCRIPT
public static final Integer SUPERSCRIPT_SUB
SUPERSCRIPT
public static final TextAttribute FONT
Font
的实例 。
默认值是空值,指示的正常分辨率Font
从属性应该被执行。
TextLayout
和AttributedCharacterIterator
工作在Maps
的TextAttributes
。 通常,所有属性都被检查并用于选择和配置一个Font
实例。 如果存在FONT
属性,则将使用其关联的Font
。 这为用户提供了将字体属性的分辨率重写为Font的Font
,或强制使用特定的Font
实例。 这也允许用户在Font
可以Font
的情况下指定Font的Font
类。
FONT
用于特殊情况,客户端已有Font
实例,但仍需使用基于Map
的API。 通常, Map
除了FONT
属性外不会有其他属性。 随着Map
基于API的常见的情况是指定单独的所有属性,因此FONT
不需要或desireable。
但是,如果FONT
和其他属性都存在于Map
,则渲染系统将将Font中定义的Font
与其他属性合并。 此合并过程将TextAttributes
分为两组。 一个组,“主要”组被认为是字体的选择和度量行为的基础。 这些属性是FAMILY
, WEIGHT
, WIDTH
, POSTURE
, SIZE
, TRANSFORM
, SUPERSCRIPT
和TRACKING
。 另一组,“次要”组由所有其他定义的属性组成,但FONT
本身FONT
。
要生成新的Map
,首先Font
是从FONT
属性获取的,并将其所有属性提取为新的Map
。 然后只从原始的次要属性Map
被添加到那些在新的Map
。 因此初级属性的值从所述单独来Font
,和次级属性的值与起源Font
但是可以通过其他的值在被覆盖Map
。
注: Font's
Map
为基础构造和deriveFont
方法不处理FONT
属性,因为这些都是用于创建新Font
对象。 相反, Font.getFont(Map)
应该用来处理FONT
属性。
Font
public static final TextAttribute CHAR_REPLACEMENT
此属性用于为嵌入文本行的图形或其他组件保留空间。 当执行双向重新排序(参见Bidi
)时,需要在行内正确定位“内联”组件。 将使用提供的GraphicAttribute呈现每个字符(Unicode代码点)。 通常,应用此属性的字符应为\uFFFC
。
GraphicAttribute确定文本的逻辑和视觉界限; 实际的字体值将被忽略。
GraphicAttribute
public static final TextAttribute FOREGROUND
Paint
。
默认值是零,表明Paint
集上Graphics2D
在渲染时使用。
使用这个Paint
将使用Graphics
(但参见SWAP_COLORS
)设置Paint
值即可使用字形。
Paint
, SWAP_COLORS
public static final TextAttribute BACKGROUND
Paint
。
默认值为null,表示不应呈现背景。
文本的逻辑边界将使用此Paint
填充,然后文本将在其上显示(但请参阅SWAP_COLORS
)。
如果需要,文本的可视界限被扩展为包括逻辑边界。 大纲不受影响。
Paint
, SWAP_COLORS
public static final TextAttribute UNDERLINE
public static final TextAttribute STRIKETHROUGH
public static final Boolean STRIKETHROUGH_ON
STRIKETHROUGH
public static final TextAttribute RUN_DIRECTION
Boolean
。
默认值为null,表示用于确定运行方向的标准Bidi算法应与值Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT
一起使用。
提供常数RUN_DIRECTION_RTL
和RUN_DIRECTION_LTR
。
这决定了传递给Bidi
构造函数的值,以选择段落中文本的主要方向。
注意:此属性对于段落中的所有文本应具有相同的值,否则行为未确定。
Bidi
public static final Boolean RUN_DIRECTION_LTR
RUN_DIRECTION
public static final Boolean RUN_DIRECTION_RTL
RUN_DIRECTION
public static final TextAttribute BIDI_EMBEDDING
Integer
。
默认值为null
,表示双向算法应该在没有明确嵌入的情况下运行。
正值1到61是嵌入级别,负值-1到-61是覆盖级别。 值0表示使用基线方向。 这些级别在嵌入级别数组中传递给Bidi
构造函数。
注意:当此属性出现在段落中的任何位置时,段落中的任何Unicode双向控制字符(RLO,LRO,RLE,LRE和PDF)将被忽略,并且不存在此属性的文本的运行被视为它是存在的,值为0。
Bidi
public static final TextAttribute JUSTIFICATION
Number
。
默认值为1,表示对齐应使用提供的全宽。
值固定在范围[0..1]。
提供常数JUSTIFICATION_FULL
和JUSTIFICATION_NONE
。
指定额外的空间时,要求对的理由来使用的部分TextLayout
。 例如,如果线是50点宽,并且被要求证明为70点,则0.75的值将用于占用剩余空间的四分之三或15点,使得所得到的线将为65点长度。
注意:对于段落中的所有文本应该具有相同的值,否则行为是不确定的。
public static final Float JUSTIFICATION_FULL
JUSTIFICATION
的默认值。
JUSTIFICATION
public static final Float JUSTIFICATION_NONE
JUSTIFICATION
public static final TextAttribute INPUT_METHOD_HIGHLIGHT
值为InputMethodHighlight
或Annotation
的实例 。 默认值为null
,这意味着在渲染之前不应该应用输入法样式。
如果具有相同的文本相邻的运行InputMethodHighlight
需要单独呈现时, InputMethodHighlights
应包裹在Annotation
实例。
当输入法正在组合文本时,使用输入法高亮。 文本编辑组件应该保留它们,即使它们通常仅处理未被写入的文本,并使它们可用于绘图例程。
Font
, InputMethodHighlight
, Annotation
public static final TextAttribute INPUT_METHOD_UNDERLINE
Integer
。
默认值为-1
,这意味着没有下划线。
提供了几个常量值,见UNDERLINE_LOW_ONE_PIXEL
, UNDERLINE_LOW_TWO_PIXEL
, UNDERLINE_LOW_DOTTED
, UNDERLINE_LOW_GRAY
和UNDERLINE_LOW_DASHED
。
如果需要,可以与UNDERLINE
结合使用。 主要目的是使用输入法。 其他使用这些下划线的简单装饰可能会使用户混淆。
输入法下划线影响文本的视觉界限和轮廓。
public static final Integer UNDERLINE_LOW_ONE_PIXEL
INPUT_METHOD_UNDERLINE
public static final Integer UNDERLINE_LOW_TWO_PIXEL
INPUT_METHOD_UNDERLINE
public static final Integer UNDERLINE_LOW_DOTTED
INPUT_METHOD_UNDERLINE
public static final Integer UNDERLINE_LOW_GRAY
INPUT_METHOD_UNDERLINE
public static final Integer UNDERLINE_LOW_DASHED
INPUT_METHOD_UNDERLINE
public static final TextAttribute SWAP_COLORS
Paints
键Paints
。
值是Boolean的Boolean
。
默认值为false
,这意味着不要交换颜色。
定义常数值SWAP_COLORS_ON
。
如果FOREGROUND
属性设置,其Paint
将被用作背景,否则Paint
目前在Graphics
将被使用。 如果BACKGROUND
属性设置为Paint
,则其Paint
将被用作前台,否则系统将会找到与(已解析)背景的对比色,以使文本可见。
FOREGROUND
,
BACKGROUND
public static final Boolean SWAP_COLORS_ON
SWAP_COLORS
public static final TextAttribute NUMERIC_SHAPING
NumericShaper
的实例 。
默认值为null
,这意味着不执行数字整形。
当定义数字整形器时,文本首先由整形器处理,然后执行文本的任何其他分析。
注意:对于段落中的所有文本应该具有相同的值,否则行为是不确定的。
NumericShaper
public static final TextAttribute KERNING
Integer
。
默认值为0
,不要求字距调整。
提供常数值KERNING_ON
。
单个字符的默认进度不适用于某些字符序列,例如“To”或“AWAY”。 没有字距,相邻的字符似乎被太多的空间分开。 字距会导致所选择的字符序列间隔不同以获得更令人愉悦的视觉外观。
public static final TextAttribute LIGATURES
public static final TextAttribute TRACKING
Number
。
默认值为0
,这意味着没有额外的跟踪。
提供常数值TRACKING_TIGHT
和TRACKING_LOOSE
。
跟踪值乘以字体点大小,并通过字体转换,以确定添加到每个字形集群的前进的附加数量。 正的跟踪值将抑制可选结扎的形成。 跟踪值通常在-0.1
和0.3
之间; 超出该范围的值通常是不需要的。
protected TextAttribute(String name)
TextAttribute
具有指定名称。
name
- 要分配给此
TextAttribute
的属性名称
protected Object readResolve() throws InvalidObjectException
readResolve
在
AttributedCharacterIterator.Attribute
类
Attribute
对象
InvalidObjectException
- 如果要解析的对象不是
Attribute
一个实例