lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

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

Nested classes

class DynamicLayout.Builder

Builder for dynamic layouts. 

Inherited constants

Public constructors

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

This constructor was deprecated in API level 28. Use DynamicLayout.Builder instead.

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

This constructor was deprecated in API level 28. Use DynamicLayout.Builder instead.

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

This constructor was deprecated in API level 28. Use DynamicLayout.Builder instead.

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

Public constructors

DynamicLayout

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

This constructor was deprecated in API level 28.
Use DynamicLayout.Builder instead.

Parameters
base CharSequence

This value must never be null.

paint TextPaint

This value must never be null.

width int

align Layout.Alignment

This value must never be null.

spacingmult float

Value is 0.0 or greater.

spacingadd float

includepad boolean

DynamicLayout

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

This constructor was deprecated in API level 28.
Use DynamicLayout.Builder instead.

Parameters
base CharSequence

This value must never be null.

display CharSequence

This value must never be null.

paint TextPaint

This value must never be null.

width int

align Layout.Alignment

This value must never be null.

spacingmult float

Value is 0.0 or greater.

spacingadd float

includepad boolean

DynamicLayout

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

This constructor was deprecated in API level 28.
Use DynamicLayout.Builder instead.

Parameters
base CharSequence

This value must never be null.

display CharSequence

This value must never be null.

paint TextPaint

This value must never be null.

width int

align Layout.Alignment

This value must never be null.

spacingmult float

Value is 0.0 or greater.

spacingadd float

includepad boolean

ellipsize TextUtils.TruncateAt

This value may be null.

ellipsizedWidth int

Public methods

getBottomPadding

added in API level 1
public 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
public 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
public 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
public 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
public 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
public int getLineCount ()

Return the number of lines of text in this layout.

Returns
int

getLineDescent

added in API level 1
public 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
public final 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
public 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
public 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
public 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
public int getTopPadding ()

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

Returns
int