Build 1.0_r1(from source)

android.text
Class Layout

java.lang.Object
  extended by android.text.Layout
Direct Known Subclasses:
BoringLayout, DynamicLayout, StaticLayout

public abstract class Layout
extends Object

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 Class Summary
static class Layout.Alignment
           
static class Layout.Directions
          Stores information about bidirectional (left-to-right or right-to-left) text within the layout of a line.
(package private) static class Layout.Ellipsizer
           
(package private) static class Layout.SpannedEllipsizer
           
 
Field Summary
static int DIR_LEFT_TO_RIGHT
           
static int DIR_RIGHT_TO_LEFT
           
(package private) static Layout.Directions DIRS_ALL_LEFT_TO_RIGHT
           
(package private) static Layout.Directions DIRS_ALL_RIGHT_TO_LEFT
           
(package private)  TextPaint mWorkPaint
           
 
Constructor Summary
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.
 
Method Summary
 void draw(Canvas c)
          Draw this Layout on the specified Canvas.
 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.
 Layout.Alignment getAlignment()
          Return the base alignment of this layout.
abstract  int getBottomPadding()
          Returns the number of extra pixels of descent padding in the bottom line of the Layout.
 void getCursorPath(int point, Path dest, CharSequence editingBuffer)
          Fills in the specified Path with a representation of a cursor at the specified offset.
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.
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.
abstract  int getEllipsisCount(int line)
          Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.
abstract  int getEllipsisStart(int line)
          Return the offset of the first character to be ellipsized away, relative to the start of the line.
 int getEllipsizedWidth()
          Return the width to which this Layout is ellipsizing, or getWidth() if it is not doing anything special.
 int getHeight()
          Return the total height of this layout.
 int getLineAscent(int line)
          Get the ascent of the text on the specified line.
 int getLineBaseline(int line)
          Return the vertical position of the baseline of the specified line.
 int getLineBottom(int line)
          Return the vertical position of the bottom of the specified line.
 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.
abstract  boolean getLineContainsTab(int line)
          Returns whether the specified line contains one or more tabs.
abstract  int getLineCount()
          Return the number of lines of text in this layout.
abstract  int getLineDescent(int line)
          Return the descent of the specified line.
abstract  Layout.Directions getLineDirections(int line)
          Returns an array of directionalities for the specified line.
 int getLineEnd(int line)
          Return the text offset after the last character on the specified line.
 int getLineForOffset(int offset)
          Get the line number on which the specified text offset appears.
 int getLineForVertical(int vertical)
          Get the line number corresponding to the specified vertical position.
 float getLineLeft(int line)
          Get the leftmost position that should be exposed for horizontal scrolling on the specified line.
 float getLineMax(int line)
          Gets the horizontal extent of the specified line, excluding trailing whitespace.
 float getLineRight(int line)
          Get the rightmost position that should be exposed for horizontal scrolling on the specified line.
abstract  int getLineStart(int line)
          Return the text offset of the beginning of the specified line.
abstract  int getLineTop(int line)
          Return the vertical position of the top of the specified line.
 int getLineVisibleEnd(int line)
          Return the text offset after the last visible character (so whitespace is not counted) on the specified line.
 float getLineWidth(int line)
          Gets the horizontal extent of the specified line, including trailing whitespace.
 int getOffsetForHorizontal(int line, float horiz)
          Get the character offset on the specfied line whose position is closest to the specified horizontal position.
 int getOffsetToLeftOf(int offset)
          Return the text offset that would be reached by moving left (possibly onto another line) from the specified offset.
 int getOffsetToRightOf(int offset)
          Return the text offset that would be reached by moving right (possibly onto another line) from the specified offset.
 TextPaint getPaint()
          Return the base Paint properties for this layout.
 Layout.Alignment getParagraphAlignment(int line)
          Get the alignment of the specified paragraph, taking into account markup attached to it.
abstract  int getParagraphDirection(int line)
          Returns the primary directionality of the paragraph containing the specified line.
 int getParagraphLeft(int line)
          Get the left edge of the specified paragraph, inset by left margins.
 int getParagraphRight(int line)
          Get the right edge of the specified paragraph, inset by right margins.
 float getPrimaryHorizontal(int offset)
          Get the primary horizontal position for the specified text offset.
 float getSecondaryHorizontal(int offset)
          Get the secondary horizontal position for the specified text offset.
 void getSelectionPath(int start, int end, Path dest)
          Fills in the specified Path with a representation of a highlight between the specified offsets.
 float getSpacingAdd()
          Return the number of units of leading that are added to each line.
 float getSpacingMultiplier()
          Return what the text height is multiplied by to get the line height.
 CharSequence getText()
          Return the text that is displayed by this Layout.
abstract  int getTopPadding()
          Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.
 int getWidth()
          Return the width of this layout.
 void increaseWidthTo(int wid)
          Increase the width of this layout to the specified width.
protected  boolean isSpanned()
           
(package private) static float measureText(TextPaint paint, TextPaint workPaint, CharSequence text, int start, int end, Paint.FontMetricsInt fm, boolean hasTabs, Object[] tabs)
           
(package private) static float nextTab(CharSequence text, int start, int end, float h, Object[] tabs)
           
(package private)  void replaceWith(CharSequence text, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd)
          Replace constructor properties of this Layout with new ones.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mWorkPaint

TextPaint mWorkPaint

DIR_LEFT_TO_RIGHT

public static final int DIR_LEFT_TO_RIGHT
See Also:
Constant Field Values

DIR_RIGHT_TO_LEFT

public static final int DIR_RIGHT_TO_LEFT
See Also:
Constant Field Values

DIRS_ALL_LEFT_TO_RIGHT

static final Layout.Directions DIRS_ALL_LEFT_TO_RIGHT

DIRS_ALL_RIGHT_TO_LEFT

static final Layout.Directions DIRS_ALL_RIGHT_TO_LEFT
Constructor Detail

Layout

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.

Method Detail

getDesiredWidth

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.


getDesiredWidth

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.


replaceWith

void replaceWith(CharSequence text,
                 TextPaint paint,
                 int width,
                 Layout.Alignment align,
                 float spacingmult,
                 float spacingadd)
Replace constructor properties of this Layout with new ones. Be careful.


draw

public void draw(Canvas c)
Draw this Layout on the specified Canvas.


draw

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.


getText

public final CharSequence getText()
Return the text that is displayed by this Layout.


getPaint

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.


getWidth

public final int getWidth()
Return the width of this layout.


getEllipsizedWidth

public int getEllipsizedWidth()
Return the width to which this Layout is ellipsizing, or getWidth() if it is not doing anything special.


increaseWidthTo

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.


getHeight

public int getHeight()
Return the total height of this layout.


getAlignment

public final Layout.Alignment getAlignment()
Return the base alignment of this layout.


getSpacingMultiplier

public final float getSpacingMultiplier()
Return what the text height is multiplied by to get the line height.


getSpacingAdd

public final float getSpacingAdd()
Return the number of units of leading that are added to each line.


getLineCount

public abstract int getLineCount()
Return the number of lines of text in this layout.


getLineBounds

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

getLineTop

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.


getLineDescent

public abstract int getLineDescent(int line)
Return the descent of the specified line.


getLineStart

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.


getParagraphDirection

public abstract int getParagraphDirection(int line)
Returns the primary directionality of the paragraph containing the specified line.


getLineContainsTab

public abstract boolean getLineContainsTab(int line)
Returns whether the specified line contains one or more tabs.


getLineDirections

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.


getTopPadding

public abstract int getTopPadding()
Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.


getBottomPadding

public abstract int getBottomPadding()
Returns the number of extra pixels of descent padding in the bottom line of the Layout.


getPrimaryHorizontal

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.


getSecondaryHorizontal

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.


getLineLeft

public float getLineLeft(int line)
Get the leftmost position that should be exposed for horizontal scrolling on the specified line.


getLineRight

public float getLineRight(int line)
Get the rightmost position that should be exposed for horizontal scrolling on the specified line.


getLineMax

public float getLineMax(int line)
Gets the horizontal extent of the specified line, excluding trailing whitespace.


getLineWidth

public float getLineWidth(int line)
Gets the horizontal extent of the specified line, including trailing whitespace.


getLineForVertical

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.


getLineForOffset

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.


getOffsetForHorizontal

public int getOffsetForHorizontal(int line,
                                  float horiz)
Get the character offset on the specfied line whose position is closest to the specified horizontal position.


getLineEnd

public final int getLineEnd(int line)
Return the text offset after the last character on the specified line.


getLineVisibleEnd

public int getLineVisibleEnd(int line)
Return the text offset after the last visible character (so whitespace is not counted) on the specified line.


getLineBottom

public final int getLineBottom(int line)
Return the vertical position of the bottom of the specified line.


getLineBaseline

public final int getLineBaseline(int line)
Return the vertical position of the baseline of the specified line.


getLineAscent

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.


getOffsetToLeftOf

public int getOffsetToLeftOf(int offset)
Return the text offset that would be reached by moving left (possibly onto another line) from the specified offset.


getOffsetToRightOf

public int getOffsetToRightOf(int offset)
Return the text offset that would be reached by moving right (possibly onto another line) from the specified offset.


getCursorPath

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.


getSelectionPath

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.


getParagraphAlignment

public final Layout.Alignment getParagraphAlignment(int line)
Get the alignment of the specified paragraph, taking into account markup attached to it.


getParagraphLeft

public final int getParagraphLeft(int line)
Get the left edge of the specified paragraph, inset by left margins.


getParagraphRight

public final int getParagraphRight(int line)
Get the right edge of the specified paragraph, inset by right margins.


measureText

static float measureText(TextPaint paint,
                         TextPaint workPaint,
                         CharSequence text,
                         int start,
                         int end,
                         Paint.FontMetricsInt fm,
                         boolean hasTabs,
                         Object[] tabs)

nextTab

static float nextTab(CharSequence text,
                     int start,
                     int end,
                     float h,
                     Object[] tabs)

isSpanned

protected final boolean isSpanned()

getEllipsisStart

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().)


getEllipsisCount

public abstract int getEllipsisCount(int line)
Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.


Build 1.0_r1(from source)

Please submit a feedback, bug or feature