public class

BoringLayout

extends Layout
implements TextUtils.EllipsizeCallback
java.lang.Object
   ↳ android.text.Layout
     ↳ android.text.BoringLayout

Class Overview

A BoringLayout is a very simple Layout implementation for text that fits on a single line and is all left-to-right characters. You will probably never want to make one of these yourself; if you do, be sure to call isBoring(CharSequence, TextPaint) first to make sure the text meets the criteria.

This class 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, in which case you are encouraged to use a Layout instead of calling Canvas.drawText() directly.

Summary

Nested Classes
public class BoringLayout.Metrics  
[Expand]
Inherited Constants
From class android.text.Layout
Public Constructors
BoringLayout(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)
BoringLayout(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
Public Methods
void draw(Canvas c, Path highlight, Paint highlightpaint, int cursorOffset)
Draw the specified rectangle from this Layout on the specified Canvas, with the specified path drawn between the background and the text.
void ellipsized(int start, int end)
Callback for the ellipsizer to report what region it ellipsized.
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.
int getHeight()
Return the total height of this layout.
boolean getLineContainsTab(int line)
Returns whether the specified line contains one or more characters that need to be handled specially, like tabs or emoji.
int getLineCount()
Return the number of lines of text in this layout.
int getLineDescent(int line)
Return the descent of the specified line.
final Layout.Directions getLineDirections(int line)
Returns an array of directionalities for the specified line.
float getLineMax(int line)
Gets the horizontal extent of the specified line, excluding trailing whitespace.
int getLineStart(int line)
Return the text offset of the beginning of the specified line.
int getLineTop(int line)
Return the vertical position of the top of the specified line.
int getParagraphDirection(int line)
Returns the primary directionality of the paragraph containing the specified line.
int getTopPadding()
Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.
static BoringLayout.Metrics isBoring(CharSequence text, TextPaint paint, BoringLayout.Metrics metrics)
Returns null if not boring; the width, ascent, and descent in the provided Metrics object (or a new one if the provided one was null) if boring.
static BoringLayout.Metrics isBoring(CharSequence text, TextPaint paint)
Returns null if not boring; the width, ascent, and descent if boring.
static BoringLayout make(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
static BoringLayout make(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)
BoringLayout replaceOrMake(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)
Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable.
BoringLayout replaceOrMake(CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable.
[Expand]
Inherited Methods
From class android.text.Layout
From class java.lang.Object
From interface android.text.TextUtils.EllipsizeCallback

Public Constructors

public BoringLayout (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)

public BoringLayout (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)

Public Methods

public void draw (Canvas c, Path highlight, Paint highlightpaint, int cursorOffset)

Draw the specified rectangle from this Layout on the specified Canvas, with the specified path drawn between the background and the text.

public void ellipsized (int start, int end)

Callback for the ellipsizer to report what region it ellipsized.

public int getBottomPadding ()

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

public int getEllipsisCount (int line)

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

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

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 boolean getLineContainsTab (int line)

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

public int getLineCount ()

Return the number of lines of text in this layout.

public int getLineDescent (int line)

Return the descent of the specified line.

public final 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 float getLineMax (int line)

Gets the horizontal extent of the specified line, excluding trailing whitespace.

public 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 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 getParagraphDirection (int line)

Returns the primary directionality of the paragraph containing the specified line.

public int getTopPadding ()

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

public static BoringLayout.Metrics isBoring (CharSequence text, TextPaint paint, BoringLayout.Metrics metrics)

Returns null if not boring; the width, ascent, and descent in the provided Metrics object (or a new one if the provided one was null) if boring.

public static BoringLayout.Metrics isBoring (CharSequence text, TextPaint paint)

Returns null if not boring; the width, ascent, and descent if boring.

public static BoringLayout make (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)

public static BoringLayout make (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)

public BoringLayout replaceOrMake (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad)

Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable. The caller must make sure that no one is still using this Layout.

public BoringLayout replaceOrMake (CharSequence source, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, BoringLayout.Metrics metrics, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)

Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable. The caller must make sure that no one is still using this Layout.