Most visited

Recently visited

Added in API level 1

Layout

public abstract class Layout
extends Object

java.lang.Object
   ↳ android.text.Layout
Known Direct Subclasses


管理屏幕上可视元素中文本布局的基类。

对于将被编辑的文本,使用DynamicLayout ,它将随文本更改而更新。 对于不会更改的文本,请使用StaticLayout

Summary

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的椭圆化宽度,如果没有做任何特殊处理,则返回 getWidth()

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从右到左线(见 DIR_LEFT_TO_RIGHTDIR_RIGHT_TO_LEFT )。

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

Constants

BREAK_STRATEGY_BALANCED

Added in API level 23
int BREAK_STRATEGY_BALANCED

突破战略的价值表明平衡线突破。 选择休息点以使所有线尽可能接近相同长度,包括自动连字符。

常量值:2(0x00000002)

BREAK_STRATEGY_HIGH_QUALITY

Added in API level 23
int BREAK_STRATEGY_HIGH_QUALITY

突破策略的价值,表示高质量的换行,包括自动断字和对换行符进行全段优化。

常数值:1(0x00000001)

BREAK_STRATEGY_SIMPLE

Added in API level 23
int BREAK_STRATEGY_SIMPLE

突破战略的价值,表明简单的断线。 自动连字符不会被添加(尽管软连字符被尊重),并且修改文本通常不会影响布局之前的布局(编辑时会产生更一致的用户体验),但布局可能不是最高质量。

常量值:0(0x00000000)

DIR_LEFT_TO_RIGHT

Added in API level 1
int DIR_LEFT_TO_RIGHT

常数值:1(0x00000001)

DIR_RIGHT_TO_LEFT

Added in API level 1
int DIR_RIGHT_TO_LEFT

常量值:-1(0xffffffff)

HYPHENATION_FREQUENCY_FULL

Added in API level 23
int HYPHENATION_FREQUENCY_FULL

连字符频率的值表示自动连字符的完整数量,在排版中是典型的。 用于运行文本以及在空间有限的情况下将最大数量的文本放入屏幕非常重要。

常量值:2(0x00000002)

HYPHENATION_FREQUENCY_NONE

Added in API level 23
int HYPHENATION_FREQUENCY_NONE

连字频率的值表示没有自动连字符。 对于向后兼容性以及自动连字算法导致错误连字的情况有用。 当一个单词比布局更宽并且没有有效的中断时,中间单词中断可能仍然会发生。 软连字符被忽略,不会被用作潜在换行符的建议。

常量值:0(0x00000000)

HYPHENATION_FREQUENCY_NORMAL

Added in API level 23
int HYPHENATION_FREQUENCY_NORMAL

连字频率的值表示自动连字的光量,这是一个保守的默认值。 对于非正式的情况很有用,例如短句或聊天消息。

常数值:1(0x00000001)

Protected constructors

Layout

Added in API level 1
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

Public methods

draw

Added in API level 1
void draw (Canvas c)

在指定的画布上绘制此布局。

Parameters
c Canvas

draw

Added in API level 1
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

getAlignment

Added in API level 1
Layout.Alignment getAlignment ()

返回此布局的基础对齐。

Returns
Layout.Alignment

getBottomPadding

Added in API level 1
int getBottomPadding ()

返回布局底行中的下降填充的额外像素数。

Returns
int

getCursorPath

Added in API level 1
void getCursorPath (int point, 
                Path dest, 
                CharSequence editingBuffer)

用指定偏移量的游标表示填充指定的路径。 这通常是一条垂直线,但可以是具有多个方向性的文本中的多条不连续线。

Parameters
point int
dest Path
editingBuffer CharSequence

getDesiredWidth

Added in API level 1
float getDesiredWidth (CharSequence source, 
                TextPaint paint)

返回布局必须有多宽以便为每个段落显示一行指定的文本。

Parameters
source CharSequence
paint TextPaint
Returns
float

getDesiredWidth

Added in API level 1
float getDesiredWidth (CharSequence source, 
                int start, 
                int end, 
                TextPaint paint)

返回布局必须有多宽以便为每个段落显示一行指定的文本切片。

Parameters
source CharSequence
start int
end int
paint TextPaint
Returns
float

getEllipsisCount

Added in API level 1
int getEllipsisCount (int line)

返回要椭圆化的字符数,如果不发生省略号,则返回0。

Parameters
line int
Returns
int

getEllipsisStart

Added in API level 1
int getEllipsisStart (int line)

将第一个字符的偏移量返回相对于该行的起始位置。 (所以0如果行的开始是椭圆化的,而不是getLineStart()。)

Parameters
line int
Returns
int

getEllipsizedWidth

Added in API level 1
int getEllipsizedWidth ()

返回此Layout的椭圆化宽度,如果没有做任何特殊处理,则返回 getWidth()

Returns
int

getHeight

Added in API level 1
int getHeight ()

返回此布局的总高度。

Returns
int

getLineAscent

Added in API level 1
int getLineAscent (int line)

获取指定行上文本的上升。 返回值为负值以匹配Paint.ascent()约定。

Parameters
line int
Returns
int

getLineBaseline

Added in API level 1
int getLineBaseline (int line)

返回指定行的基线的垂直位置。

Parameters
line int
Returns
int

getLineBottom

Added in API level 1
int getLineBottom (int line)

返回指定行底部的垂直位置。

Parameters
line int
Returns
int

getLineBounds

Added in API level 1
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

getLineContainsTab

Added in API level 1
boolean getLineContainsTab (int line)

返回指定的行是否包含一个或多个需要专门处理的字符,如选项卡。

Parameters
line int
Returns
boolean

getLineCount

Added in API level 1
int getLineCount ()

返回此布局中的文本行数。

Returns
int

getLineDescent

Added in API level 1
int getLineDescent (int line)

返回指定行的下降(0 ... getLineCount() - 1)。

Parameters
line int
Returns
int

getLineDirections

Added in API level 1
Layout.Directions getLineDirections (int line)

返回指定行的定向运行信息。 该阵列交替排列从左到右和从右到左的字符的字符数。

注意:这不足以支持双向文本,并且会改变。

Parameters
line int
Returns
Layout.Directions

getLineEnd

Added in API level 1
int getLineEnd (int line)

返回指定行上最后一个字符后面的文本偏移量。

Parameters
line int
Returns
int

getLineForOffset

Added in API level 1
int getLineForOffset (int offset)

获取指定文本偏移出现的行号。 如果你要求在0之前的位置,你会得到0; 如果您要求超出文本结尾的位置,您会得到最后一行。

Parameters
offset int
Returns
int

getLineForVertical

Added in API level 1
int getLineForVertical (int vertical)

获取与指定垂直位置对应的行号。 如果你要求位置在0以上,你会得到0; 如果你要求在文本底部以下的位置,你会得到最后一行。

Parameters
vertical int
Returns
int

getLineLeft

Added in API level 1
float getLineLeft (int line)

获取应显示在指定行上的水平滚动的最左边位置。

Parameters
line int
Returns
float

getLineMax

Added in API level 1
float getLineMax (int line)

获取指定行的无符号水平范围,包括前导边距缩进,但不包括尾随空格。

Parameters
line int
Returns
float

getLineRight

Added in API level 1
float getLineRight (int line)

获取应该暴露在指定行上的水平滚动的最右边位置。

Parameters
line int
Returns
float

getLineStart

Added in API level 1
int getLineStart (int line)

返回指定行首的文本偏移量(0 ... getLineCount())。 如果指定的行等于行数,则返回文本的长度。

Parameters
line int
Returns
int

getLineTop

Added in API level 1
int getLineTop (int line)

返回指定行顶部的垂直位置(0 ... getLineCount())。 如果指定的行等于行数,则返回最后一行的底部。

Parameters
line int
Returns
int

getLineVisibleEnd

Added in API level 1
int getLineVisibleEnd (int line)

在指定的行上返回最后一个可见字符(因此不计算空白)后的文本偏移量。

Parameters
line int
Returns
int

getLineWidth

Added in API level 1
float getLineWidth (int line)

获取指定行的无符号水平范围,包括前导边距缩进和尾随空白。

Parameters
line int
Returns
float

getOffsetForHorizontal

Added in API level 1
int getOffsetForHorizontal (int line, 
                float horiz)

获取位置与指定水平位置最接近的指定行上的字符偏移量。

Parameters
line int
horiz float
Returns
int

getOffsetToLeftOf

Added in API level 1
int getOffsetToLeftOf (int offset)

Parameters
offset int
Returns
int

getOffsetToRightOf

Added in API level 1
int getOffsetToRightOf (int offset)

Parameters
offset int
Returns
int

getPaint

Added in API level 1
TextPaint getPaint ()

返回此布局的基础Paint属性。 不要改变油漆,这可能会导致这种布局的有趣绘图。

Returns
TextPaint

getParagraphAlignment

Added in API level 1
Layout.Alignment getParagraphAlignment (int line)

考虑到附加的标记,获取指定段落的对齐方式。

Parameters
line int
Returns
Layout.Alignment

getParagraphDirection

Added in API level 1
int getParagraphDirection (int line)

返回包含在指定行的段落的初级方向性,要么1左到右线,或-1从右到左线(见 DIR_LEFT_TO_RIGHTDIR_RIGHT_TO_LEFT )。

Parameters
line int
Returns
int

getParagraphLeft

Added in API level 1
int getParagraphLeft (int line)

获取指定段落的左边缘,插入左边距。

Parameters
line int
Returns
int

getParagraphRight

Added in API level 1
int getParagraphRight (int line)

获取指定段落的右边缘,插入右边距。

Parameters
line int
Returns
int

getPrimaryHorizontal

Added in API level 1
float getPrimaryHorizontal (int offset)

获取指定文本偏移的主要水平位置。 这是在段落的主要方向上插入新角色的位置。

Parameters
offset int
Returns
float

getSecondaryHorizontal

Added in API level 1
float getSecondaryHorizontal (int offset)

获取指定文本偏移的二级水平位置。 这是新角色插入除段落主要方向之外的方向的位置。

Parameters
offset int
Returns
float

getSelectionPath

Added in API level 1
void getSelectionPath (int start, 
                int end, 
                Path dest)

用指定偏移量之间的高光表示填充指定的路径。 这通常是矩形或可能不连续的一组矩形。 如果开始和结束相同,则返回的路径为空。

Parameters
start int
end int
dest Path

getSpacingAdd

Added in API level 1
float getSpacingAdd ()

返回添加到每行的前导单位数。

Returns
float

getSpacingMultiplier

Added in API level 1
float getSpacingMultiplier ()

返回文本高度乘以得到行高度。

Returns
float

getText

Added in API level 1
CharSequence getText ()

返回此布局显示的文本。

Returns
CharSequence

getTopPadding

Added in API level 1
int getTopPadding ()

返回布局顶部行中(ascent padding)额外像素的(负)数。

Returns
int

getWidth

Added in API level 1
int getWidth ()

返回此布局的宽度。

Returns
int

increaseWidthTo

Added in API level 1
void increaseWidthTo (int wid)

将此布局的宽度增加到指定的宽度。 只有当你知道它是合适的时候才使用它 - 它不会导致文本重新流回使用全新的宽度。

Parameters
wid int

isRtlCharAt

Added in API level 14
boolean isRtlCharAt (int offset)

如果偏移处的字符是右向左(RTL),则返回true。

Parameters
offset int: the offset
Returns
boolean true if the character is RTL, false if it is LTR

Protected methods

isSpanned

Added in API level 1
boolean isSpanned ()

Returns
boolean

Hooray!