Skip to content

Most visited

Recently visited

navigation

DynamicLayout

public class DynamicLayout
extends Layout

java.lang.Object
   ↳ android.text.Layout
     ↳ android.text.DynamicLayout


DynamicLayout is a text layout that updates itself as the text is edited.

This is used by widgets to control text layout. You should not need to use this class directly unless you are implementing your own widget or custom display object, or need to call Canvas.drawText() directly.

Summary

Inherited constants

From class android.text.Layout

Public constructors

DynamicLayout(CharSequence base, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad)

Make a layout for the specified text that will be updated as the text is changed.

DynamicLayout(CharSequence base, CharSequence display, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad)

Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed.

DynamicLayout(CharSequence base, CharSequence display, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)

Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed.

Public methods

int getBottomPadding()

Returns the number of extra pixels of descent padding in the bottom line of the Layout.

int getEllipsisCount(int line)

Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.

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.

boolean getLineContainsTab(int line)

Returns whether the specified line contains one or more characters that need to be handled specially, like tabs.

int getLineCount()

Return the number of lines of text in this layout.

int getLineDescent(int line)

Return the descent of the specified line(0…getLineCount() - 1).

final Layout.Directions getLineDirections(int line)

Returns the directional run information for the specified line.

int getLineStart(int line)

Return the text offset of the beginning of the specified line ( 0…getLineCount()).

int getLineTop(int line)

Return the vertical position of the top of the specified line (0…getLineCount()).

int getParagraphDirection(int line)

Returns the primary directionality of the paragraph containing the specified line, either 1 for left-to-right lines, or -1 for right-to-left lines (see DIR_LEFT_TO_RIGHT, DIR_RIGHT_TO_LEFT).

int getTopPadding()

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

Inherited methods

From class android.text.Layout
From class java.lang.Object

Public constructors

DynamicLayout

added in API level 1
DynamicLayout (CharSequence base, 
                TextPaint paint, 
                int width, 
                Layout.Alignment align, 
                float spacingmult, 
                float spacingadd, 
                boolean includepad)

Make a layout for the specified text that will be updated as the text is changed.

Parameters
base CharSequence

paint TextPaint

width int

align Layout.Alignment

spacingmult float

spacingadd float

includepad boolean

DynamicLayout

added in API level 1
DynamicLayout (CharSequence base, 
                CharSequence display, 
                TextPaint paint, 
                int width, 
                Layout.Alignment align, 
                float spacingmult, 
                float spacingadd, 
                boolean includepad)

Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed.

Parameters
base CharSequence

display CharSequence

paint TextPaint

width int

align Layout.Alignment

spacingmult float

spacingadd float

includepad boolean

DynamicLayout

added in API level 1
DynamicLayout (CharSequence base, 
                CharSequence display, 
                TextPaint paint, 
                int width, 
                Layout.Alignment align, 
                float spacingmult, 
                float spacingadd, 
                boolean includepad, 
                TextUtils.TruncateAt ellipsize, 
                int ellipsizedWidth)

Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed. If ellipsize is non-null, the Layout will ellipsize the text down to ellipsizedWidth.

Parameters
base CharSequence

display CharSequence

paint TextPaint

width int

align Layout.Alignment

spacingmult float

spacingadd float

includepad boolean

ellipsize TextUtils.TruncateAt

ellipsizedWidth int

Public methods

getBottomPadding

added in API level 1
int getBottomPadding ()

Returns the number of extra pixels of descent padding in the bottom line of the Layout.

Returns
int

getEllipsisCount

added in API level 1
int getEllipsisCount (int line)

Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.

Parameters
line int

Returns
int

getEllipsisStart

added in API level 1
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().)

Parameters
line int

Returns
int

getEllipsizedWidth

added in API level 1
int getEllipsizedWidth ()

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

Returns
int

getLineContainsTab

added in API level 1
boolean getLineContainsTab (int line)

Returns whether the specified line contains one or more characters that need to be handled specially, like tabs.

Parameters
line int

Returns
boolean

getLineCount

added in API level 1
int getLineCount ()

Return the number of lines of text in this layout.

Returns
int

getLineDescent

added in API level 1
int getLineDescent (int line)

Return the descent of the specified line(0…getLineCount() - 1).

Parameters
line int

Returns
int

getLineDirections

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

Returns the directional run information for the specified line. The array alternates counts of characters in left-to-right and right-to-left segments of the line.

NOTE: this is inadequate to support bidirectional text, and will change.

Parameters
line int

Returns
Layout.Directions

getLineStart

added in API level 1
int getLineStart (int line)

Return the text offset of the beginning of the specified line ( 0…getLineCount()). If the specified line is equal to the line count, returns the length of the text.

Parameters
line int

Returns
int

getLineTop

added in API level 1
int getLineTop (int line)

Return the vertical position of the top of the specified line (0…getLineCount()). If the specified line is equal to the line count, returns the bottom of the last line.

Parameters
line int

Returns
int

getParagraphDirection

added in API level 1
int getParagraphDirection (int line)

Returns the primary directionality of the paragraph containing the specified line, either 1 for left-to-right lines, or -1 for right-to-left lines (see DIR_LEFT_TO_RIGHT, DIR_RIGHT_TO_LEFT).

Parameters
line int

Returns
int

getTopPadding

added in API level 1
int getTopPadding ()

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

Returns
int

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)