android.text
public
abstract
class
android.text.Layout
A base class that manages text layout in visual elements on
the screen.
For text that will be edited, use a DynamicLayout,
which will be updated as the text changes.
For text that will not change, use a StaticLayout.
Nested Classes
Known Direct Subclasses
BoringLayout |
A BoringLayout is a very simple Layout implementation for text that
fits on a single line and is all left-to-right characters. |
DynamicLayout |
DynamicLayout is a text layout that updates itself as the text is edited. |
StaticLayout |
StaticLayout is a Layout for text that will not be edited after it
is laid out. |
Summary
Constants
Protected Constructors
Public Methods
|
|
|
|
|
void |
draw(Canvas c) |
|
|
|
|
|
void |
draw(Canvas c, 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, int start, int end, TextPaint paint) |
|
|
|
static |
|
float |
getDesiredWidth(CharSequence source, TextPaint paint) |
abstract |
|
|
|
|
int |
getEllipsisCount(int line) |
abstract |
|
|
|
|
int |
getEllipsisStart(int line) |
|
|
|
|
|
int |
getEllipsizedWidth() |
|
|
|
|
|
int |
getHeight() |
|
|
final |
|
|
int |
getLineAscent(int line) |
|
|
final |
|
|
int |
getLineBaseline(int line) |
|
|
final |
|
|
int |
getLineBottom(int line) |
|
|
|
|
|
int |
getLineBounds(int line, Rect bounds) |
abstract |
|
|
|
|
boolean |
getLineContainsTab(int line) |
abstract |
|
|
|
|
int |
getLineCount() |
abstract |
|
|
|
|
int |
getLineDescent(int line) |
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) |
abstract |
|
|
|
|
int |
getLineTop(int line) |
|
|
|
|
|
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() |
|
|
final |
|
|
Layout.Alignment |
getParagraphAlignment(int line) |
abstract |
|
|
|
|
int |
getParagraphDirection(int line) |
|
|
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() |
|
|
final |
|
|
int |
getWidth() |
|
|
final |
|
|
void |
increaseWidthTo(int wid) |
Protected Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Constants
public
static
final
int
DIR_LEFT_TO_RIGHT
Constant Value:
1
(0x00000001)
public
static
final
int
DIR_RIGHT_TO_LEFT
Constant Value:
-1
(0xffffffff)
Protected Constructors
protected
Layout(CharSequence text, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd)
Subclasses of Layout use this constructor to set the display text,
width, and other standard properties.
Public Methods
public
void
draw(Canvas c)
Draw this Layout on the specified Canvas.
public
void
draw(Canvas c, Path highlight, Paint highlightpaint, int cursorOffsetVertical)
Draw the specified rectangle from this Layout on the specified Canvas,
with the specified path drawn between the background and the text.
Return the base alignment of this layout.
public
abstract
int
getBottomPadding()
Returns the number of extra pixels of descent padding in the
bottom line of the Layout.
public
void
getCursorPath(int point, Path dest, CharSequence editingBuffer)
Fills in the specified Path with a representation of a cursor
at the specified offset. This will often be a vertical line
but can be multiple discontinous lines in text with multiple
directionalities.
public
static
float
getDesiredWidth(CharSequence source, int start, int end, TextPaint paint)
Return how wide a layout would be necessary to display the
specified text slice with one line per paragraph.
public
static
float
getDesiredWidth(CharSequence source, TextPaint paint)
Return how wide a layout would be necessary to display the
specified text with one line per paragraph.
public
abstract
int
getEllipsisCount(int line)
Returns the number of characters to be ellipsized away, or 0 if
no ellipsis is to take place.
public
abstract
int
getEllipsisStart(int line)
Return the offset of the first character to be ellipsized away,
relative to the start of the line. (So 0 if the beginning of the
line is ellipsized, not getLineStart().)
public
int
getEllipsizedWidth()
Return the width to which this Layout is ellipsizing, or
getWidth() if it is not doing anything special.
public
int
getHeight()
Return the total height of this layout.
public
final
int
getLineAscent(int line)
Get the ascent of the text on the specified line.
The return value is negative to match the Paint.ascent() convention.
public
final
int
getLineBaseline(int line)
Return the vertical position of the baseline of the specified line.
public
final
int
getLineBottom(int line)
Return the vertical position of the bottom of the specified line.
public
int
getLineBounds(int line, Rect bounds)
Return the baseline for the specified line (0…getLineCount() - 1)
If bounds is not null, return the top, left, right, bottom extents
of the specified line in it.
Parameters
line
| which line to examine (0..getLineCount() - 1) |
bounds
| Optional. If not null, it returns the extent of the line |
Returns
- the Y-coordinate of the baseline
public
abstract
boolean
getLineContainsTab(int line)
Returns whether the specified line contains one or more tabs.
public
abstract
int
getLineCount()
Return the number of lines of text in this layout.
public
abstract
int
getLineDescent(int line)
Return the descent of the specified line.
public
abstract
Layout.Directions
getLineDirections(int line)
Returns an array of directionalities for the specified line.
The array alternates counts of characters in left-to-right
and right-to-left segments of the line.
public
final
int
getLineEnd(int line)
Return the text offset after the last character on the specified line.
public
int
getLineForOffset(int offset)
Get the line number on which the specified text offset appears.
If you ask for a position before 0, you get 0; if you ask for a position
beyond the end of the text, you get the last line.
public
int
getLineForVertical(int vertical)
Get the line number corresponding to the specified vertical position.
If you ask for a position above 0, you get 0; if you ask for a position
below the bottom of the text, you get the last line.
public
float
getLineLeft(int line)
Get the leftmost position that should be exposed for horizontal
scrolling on the specified line.
public
float
getLineMax(int line)
Gets the horizontal extent of the specified line, excluding
trailing whitespace.
public
float
getLineRight(int line)
Get the rightmost position that should be exposed for horizontal
scrolling on the specified line.
public
abstract
int
getLineStart(int line)
Return the text offset of the beginning of the specified line.
If the specified line is one beyond the last line, returns the
end of the last line.
public
abstract
int
getLineTop(int line)
Return the vertical position of the top of the specified line.
If the specified line is one beyond the last line, returns the
bottom of the last line.
public
int
getLineVisibleEnd(int line)
Return the text offset after the last visible character (so whitespace
is not counted) on the specified line.
public
float
getLineWidth(int line)
Gets the horizontal extent of the specified line, including
trailing whitespace.
public
int
getOffsetForHorizontal(int line, float horiz)
Get the character offset on the specfied line whose position is
closest to the specified horizontal position.
public
int
getOffsetToLeftOf(int offset)
Return the text offset that would be reached by moving left
(possibly onto another line) from the specified offset.
public
int
getOffsetToRightOf(int offset)
Return the text offset that would be reached by moving right
(possibly onto another line) from the specified offset.
public
final
TextPaint
getPaint()
Return the base Paint properties for this layout.
Do NOT change the paint, which may result in funny
drawing for this layout.
public
final
Layout.Alignment
getParagraphAlignment(int line)
Get the alignment of the specified paragraph, taking into account
markup attached to it.
public
abstract
int
getParagraphDirection(int line)
Returns the primary directionality of the paragraph containing
the specified line.
public
final
int
getParagraphLeft(int line)
Get the left edge of the specified paragraph, inset by left margins.
public
final
int
getParagraphRight(int line)
Get the right edge of the specified paragraph, inset by right margins.
public
float
getPrimaryHorizontal(int offset)
Get the primary horizontal position for the specified text offset.
This is the location where a new character would be inserted in
the paragraph's primary direction.
public
float
getSecondaryHorizontal(int offset)
Get the secondary horizontal position for the specified text offset.
This is the location where a new character would be inserted in
the direction other than the paragraph's primary direction.
public
void
getSelectionPath(int start, int end, Path dest)
Fills in the specified Path with a representation of a highlight
between the specified offsets. This will often be a rectangle
or a potentially discontinuous set of rectangles. If the start
and end are the same, the returned path is empty.
public
final
float
getSpacingAdd()
Return the number of units of leading that are added to each line.
public
final
float
getSpacingMultiplier()
Return what the text height is multiplied by to get the line height.
Return the text that is displayed by this Layout.
public
abstract
int
getTopPadding()
Returns the (negative) number of extra pixels of ascent padding in the
top line of the Layout.
public
final
int
getWidth()
Return the width of this layout.
public
final
void
increaseWidthTo(int wid)
Increase the width of this layout to the specified width.
Be careful to use this only when you know it is appropriate --
it does not cause the text to reflow to use the full new width.
Protected Methods
protected
final
boolean
isSpanned()