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!