public abstract class Layout
extends Object
java.lang.Object | |
↳ | android.text.Layout |
Known Direct Subclasses |
管理屏幕上可视元素中文本布局的基类。
对于将被编辑的文本,使用DynamicLayout
,它将随文本更改而更新。 对于不会更改的文本,请使用StaticLayout
。
Nested classes |
|
---|---|
枚举 |
Layout.Alignment
|
class |
Layout.Directions 在行的布局中存储有关双向(从左到右或从右到左)文本的信息。 |
Constants |
|
---|---|
int |
BREAK_STRATEGY_BALANCED 突破战略的价值表明平衡线突破。 |
int |
BREAK_STRATEGY_HIGH_QUALITY 突破策略的价值,表示高质量的换行,包括自动断字和对换行符进行全段优化。 |
int |
BREAK_STRATEGY_SIMPLE 突破战略的价值,表明简单的断线。 |
int |
DIR_LEFT_TO_RIGHT |
int |
DIR_RIGHT_TO_LEFT |
int |
HYPHENATION_FREQUENCY_FULL 连字符频率的值表示自动连字符的完整数量,在排版中是典型的。 |
int |
HYPHENATION_FREQUENCY_NONE 连字频率的值表示没有自动连字符。 |
int |
HYPHENATION_FREQUENCY_NORMAL 连字频率的值表示自动连字的光量,这是一个保守的默认值。 |
Protected constructors |
|
---|---|
Layout(CharSequence text, TextPaint paint, int width, Layout.Alignment align, float spacingMult, float spacingAdd) Layout的子类使用此构造函数来设置显示文本,宽度和其他标准属性。 |
Public methods |
|
---|---|
void |
draw(Canvas c) 在指定的画布上绘制此布局。 |
void |
draw(Canvas canvas, Path highlight, Paint highlightPaint, int cursorOffsetVertical) 在指定的画布上绘制此布局,并在背景和文本之间绘制高亮度路径。 |
final Layout.Alignment |
getAlignment() 返回此布局的基础对齐。 |
abstract int |
getBottomPadding() 返回布局底行中的下降填充的额外像素数。 |
void |
getCursorPath(int point, Path dest, CharSequence editingBuffer) 用指定偏移量的游标表示填充指定的路径。 |
static float |
getDesiredWidth(CharSequence source, TextPaint paint) 返回布局必须有多宽以便为每个段落显示一行指定的文本。 |
static float |
getDesiredWidth(CharSequence source, int start, int end, TextPaint paint) 返回布局必须有多宽以便为每个段落显示一行指定的文本切片。 |
abstract int |
getEllipsisCount(int line) 返回要椭圆化的字符数,如果不发生省略号,则返回0。 |
abstract int |
getEllipsisStart(int line) 将第一个字符的偏移量返回相对于该行的起始位置。 |
int |
getEllipsizedWidth() 返回此Layout的椭圆化宽度,如果没有做任何特殊处理,则返回 |
int |
getHeight() 返回此布局的总高度。 |
final int |
getLineAscent(int line) 获取指定行上文本的上升。 |
final int |
getLineBaseline(int line) 返回指定行的基线的垂直位置。 |
final int |
getLineBottom(int line) 返回指定行底部的垂直位置。 |
int |
getLineBounds(int line, Rect bounds) 返回指定行的基线(0 ... | getLineCount() - 1)如果bounds不为null,则返回指定行的顶部,左侧,右侧,底部范围。 |
abstract boolean |
getLineContainsTab(int line) 返回指定的行是否包含一个或多个需要专门处理的字符,如选项卡。 |
abstract int |
getLineCount() 返回此布局中的文本行数。 |
abstract int |
getLineDescent(int line) 返回指定行的下降(0 ... getLineCount() - 1)。 |
abstract Layout.Directions |
getLineDirections(int line) 返回指定行的定向运行信息。 |
final int |
getLineEnd(int line) 返回指定行上最后一个字符后面的文本偏移量。 |
int |
getLineForOffset(int offset) 获取指定文本偏移出现的行号。 |
int |
getLineForVertical(int vertical) 获取与指定垂直位置对应的行号。 |
float |
getLineLeft(int line) 获取应显示在指定行上的水平滚动的最左边位置。 |
float |
getLineMax(int line) 获取指定行的无符号水平范围,包括前导边距缩进,但不包括尾随空格。 |
float |
getLineRight(int line) 获取应该暴露在指定行上的水平滚动的最右边位置。 |
abstract int |
getLineStart(int line) 返回指定行首的文本偏移量(0 ... getLineCount())。 |
abstract int |
getLineTop(int line) 返回指定行顶部的垂直位置(0 ... getLineCount())。 |
int |
getLineVisibleEnd(int line) 在指定的行上返回最后一个可见字符(因此不计算空白)后的文本偏移量。 |
float |
getLineWidth(int line) 获取指定行的无符号水平范围,包括前导边距缩进和尾随空白。 |
int |
getOffsetForHorizontal(int line, float horiz) 获取位置与指定水平位置最接近的指定行上的字符偏移量。 |
int |
getOffsetToLeftOf(int offset) |
int |
getOffsetToRightOf(int offset) |
final TextPaint |
getPaint() 返回此布局的基础Paint属性。 |
final Layout.Alignment |
getParagraphAlignment(int line) 考虑到附加的标记,获取指定段落的对齐方式。 |
abstract int |
getParagraphDirection(int line) 返回包含在指定行的段落的初级方向性,要么1左到右线,或-1从右到左线(见 |
final int |
getParagraphLeft(int line) 获取指定段落的左边缘,插入左边距。 |
final int |
getParagraphRight(int line) 获取指定段落的右边缘,插入右边距。 |
float |
getPrimaryHorizontal(int offset) 获取指定文本偏移的主要水平位置。 |
float |
getSecondaryHorizontal(int offset) 获取指定文本偏移的二级水平位置。 |
void |
getSelectionPath(int start, int end, Path dest) 用指定偏移量之间的高光表示填充指定的路径。 |
final float |
getSpacingAdd() 返回添加到每行的前导单位数。 |
final float |
getSpacingMultiplier() 返回文本高度乘以得到行高度。 |
final CharSequence |
getText() 返回此布局显示的文本。 |
abstract int |
getTopPadding() 返回布局顶部行中(ascent padding)额外像素的(负)数。 |
final int |
getWidth() 返回此布局的宽度。 |
final void |
increaseWidthTo(int wid) 将此布局的宽度增加到指定的宽度。 |
boolean |
isRtlCharAt(int offset) 如果偏移处的字符是右向左(RTL),则返回true。 |
Protected methods |
|
---|---|
final boolean |
isSpanned() |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int BREAK_STRATEGY_BALANCED
突破战略的价值表明平衡线突破。 选择休息点以使所有线尽可能接近相同长度,包括自动连字符。
常量值:2(0x00000002)
int BREAK_STRATEGY_HIGH_QUALITY
突破策略的价值,表示高质量的换行,包括自动断字和对换行符进行全段优化。
常数值:1(0x00000001)
int BREAK_STRATEGY_SIMPLE
突破战略的价值,表明简单的断线。 自动连字符不会被添加(尽管软连字符被尊重),并且修改文本通常不会影响布局之前的布局(编辑时会产生更一致的用户体验),但布局可能不是最高质量。
常量值:0(0x00000000)
int HYPHENATION_FREQUENCY_FULL
连字符频率的值表示自动连字符的完整数量,在排版中是典型的。 用于运行文本以及在空间有限的情况下将最大数量的文本放入屏幕非常重要。
常量值:2(0x00000002)
int HYPHENATION_FREQUENCY_NONE
连字频率的值表示没有自动连字符。 对于向后兼容性以及自动连字算法导致错误连字的情况有用。 当一个单词比布局更宽并且没有有效的中断时,中间单词中断可能仍然会发生。 软连字符被忽略,不会被用作潜在换行符的建议。
常量值:0(0x00000000)
int HYPHENATION_FREQUENCY_NORMAL
连字频率的值表示自动连字的光量,这是一个保守的默认值。 对于非正式的情况很有用,例如短句或聊天消息。
常数值:1(0x00000001)
Layout (CharSequence text, TextPaint paint, int width, Layout.Alignment align, float spacingMult, float spacingAdd)
Layout的子类使用此构造函数来设置显示文本,宽度和其他标准属性。
Parameters | |
---|---|
text |
CharSequence : the text to render |
paint |
TextPaint : the default paint for the layout. Styles can override various attributes of the paint. |
width |
int : the wrapping width for the text. |
align |
Layout.Alignment : whether to left, right, or center the text. Styles can override the alignment. |
spacingMult |
float : factor by which to scale the font size to get the default line spacing |
spacingAdd |
float : amount to add to the default line spacing |
void draw (Canvas canvas, Path highlight, Paint highlightPaint, int cursorOffsetVertical)
在指定的画布上绘制此布局,并在背景和文本之间绘制高亮度路径。
Parameters | |
---|---|
canvas |
Canvas : the canvas |
highlight |
Path : the path of the highlight or cursor; can be null |
highlightPaint |
Paint : the paint for the highlight |
cursorOffsetVertical |
int : the amount to temporarily translate the canvas while rendering the highlight |
Layout.Alignment getAlignment ()
返回此布局的基础对齐。
Returns | |
---|---|
Layout.Alignment |
void getCursorPath (int point, Path dest, CharSequence editingBuffer)
用指定偏移量的游标表示填充指定的路径。 这通常是一条垂直线,但可以是具有多个方向性的文本中的多条不连续线。
Parameters | |
---|---|
point |
int
|
dest |
Path
|
editingBuffer |
CharSequence
|
float getDesiredWidth (CharSequence source, TextPaint paint)
返回布局必须有多宽以便为每个段落显示一行指定的文本。
Parameters | |
---|---|
source |
CharSequence
|
paint |
TextPaint
|
Returns | |
---|---|
float |
float getDesiredWidth (CharSequence source, int start, int end, TextPaint paint)
返回布局必须有多宽以便为每个段落显示一行指定的文本切片。
Parameters | |
---|---|
source |
CharSequence
|
start |
int
|
end |
int
|
paint |
TextPaint
|
Returns | |
---|---|
float |
int getEllipsisCount (int line)
返回要椭圆化的字符数,如果不发生省略号,则返回0。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getEllipsisStart (int line)
将第一个字符的偏移量返回相对于该行的起始位置。 (所以0如果行的开始是椭圆化的,而不是getLineStart()。)
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getEllipsizedWidth ()
返回此Layout的椭圆化宽度,如果没有做任何特殊处理,则返回 getWidth()
。
Returns | |
---|---|
int |
int getLineAscent (int line)
获取指定行上文本的上升。 返回值为负值以匹配Paint.ascent()约定。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineBaseline (int line)
返回指定行的基线的垂直位置。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineBottom (int line)
返回指定行底部的垂直位置。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineBounds (int line, Rect bounds)
返回指定行的基线(0 ... | getLineCount() - 1)如果bounds不为null,则返回指定行的顶部,左侧,右侧,底部范围。
Parameters | |
---|---|
line |
int : which line to examine (0..getLineCount() - 1) |
bounds |
Rect : Optional. If not null, it returns the extent of the line |
Returns | |
---|---|
int |
the Y-coordinate of the baseline |
boolean getLineContainsTab (int line)
返回指定的行是否包含一个或多个需要专门处理的字符,如选项卡。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
boolean |
int getLineDescent (int line)
返回指定行的下降(0 ... getLineCount() - 1)。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
Layout.Directions getLineDirections (int line)
返回指定行的定向运行信息。 该阵列交替排列从左到右和从右到左的字符的字符数。
注意:这不足以支持双向文本,并且会改变。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
Layout.Directions |
int getLineEnd (int line)
返回指定行上最后一个字符后面的文本偏移量。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineForOffset (int offset)
获取指定文本偏移出现的行号。 如果你要求在0之前的位置,你会得到0; 如果您要求超出文本结尾的位置,您会得到最后一行。
Parameters | |
---|---|
offset |
int
|
Returns | |
---|---|
int |
int getLineForVertical (int vertical)
获取与指定垂直位置对应的行号。 如果你要求位置在0以上,你会得到0; 如果你要求在文本底部以下的位置,你会得到最后一行。
Parameters | |
---|---|
vertical |
int
|
Returns | |
---|---|
int |
float getLineLeft (int line)
获取应显示在指定行上的水平滚动的最左边位置。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
float |
float getLineMax (int line)
获取指定行的无符号水平范围,包括前导边距缩进,但不包括尾随空格。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
float |
float getLineRight (int line)
获取应该暴露在指定行上的水平滚动的最右边位置。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
float |
int getLineStart (int line)
返回指定行首的文本偏移量(0 ... getLineCount())。 如果指定的行等于行数,则返回文本的长度。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineTop (int line)
返回指定行顶部的垂直位置(0 ... getLineCount())。 如果指定的行等于行数,则返回最后一行的底部。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getLineVisibleEnd (int line)
在指定的行上返回最后一个可见字符(因此不计算空白)后的文本偏移量。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
float getLineWidth (int line)
获取指定行的无符号水平范围,包括前导边距缩进和尾随空白。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
float |
int getOffsetForHorizontal (int line, float horiz)
获取位置与指定水平位置最接近的指定行上的字符偏移量。
Parameters | |
---|---|
line |
int
|
horiz |
float
|
Returns | |
---|---|
int |
int getOffsetToLeftOf (int offset)
Parameters | |
---|---|
offset |
int
|
Returns | |
---|---|
int |
int getOffsetToRightOf (int offset)
Parameters | |
---|---|
offset |
int
|
Returns | |
---|---|
int |
TextPaint getPaint ()
返回此布局的基础Paint属性。 不要改变油漆,这可能会导致这种布局的有趣绘图。
Returns | |
---|---|
TextPaint |
Layout.Alignment getParagraphAlignment (int line)
考虑到附加的标记,获取指定段落的对齐方式。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
Layout.Alignment |
int getParagraphDirection (int line)
返回包含在指定行的段落的初级方向性,要么1左到右线,或-1从右到左线(见 DIR_LEFT_TO_RIGHT
, DIR_RIGHT_TO_LEFT
)。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getParagraphLeft (int line)
获取指定段落的左边缘,插入左边距。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
int getParagraphRight (int line)
获取指定段落的右边缘,插入右边距。
Parameters | |
---|---|
line |
int
|
Returns | |
---|---|
int |
float getPrimaryHorizontal (int offset)
获取指定文本偏移的主要水平位置。 这是在段落的主要方向上插入新角色的位置。
Parameters | |
---|---|
offset |
int
|
Returns | |
---|---|
float |
float getSecondaryHorizontal (int offset)
获取指定文本偏移的二级水平位置。 这是新角色插入除段落主要方向之外的方向的位置。
Parameters | |
---|---|
offset |
int
|
Returns | |
---|---|
float |
void getSelectionPath (int start, int end, Path dest)
用指定偏移量之间的高光表示填充指定的路径。 这通常是矩形或可能不连续的一组矩形。 如果开始和结束相同,则返回的路径为空。
Parameters | |
---|---|
start |
int
|
end |
int
|
dest |
Path
|
float getSpacingMultiplier ()
返回文本高度乘以得到行高度。
Returns | |
---|---|
float |
int getTopPadding ()
返回布局顶部行中(ascent padding)额外像素的(负)数。
Returns | |
---|---|
int |
void increaseWidthTo (int wid)
将此布局的宽度增加到指定的宽度。 只有当你知道它是合适的时候才使用它 - 它不会导致文本重新流回使用全新的宽度。
Parameters | |
---|---|
wid |
int
|
boolean isRtlCharAt (int offset)
如果偏移处的字符是右向左(RTL),则返回true。
Parameters | |
---|---|
offset |
int : the offset |
Returns | |
---|---|
boolean |
true if the character is RTL, false if it is LTR |