Package icyllis.modernui.text
Class StaticLayout
java.lang.Object
icyllis.modernui.text.Layout
icyllis.modernui.text.StaticLayout
StaticLayout is a Layout for text that will not be edited after it
is laid out. Use
DynamicLayout
for text that may change.
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.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Builder for static layouts.Nested classes/interfaces inherited from class icyllis.modernui.text.Layout
Layout.Alignment
-
Field Summary
Fields inherited from class icyllis.modernui.text.Layout
DIR_LEFT_TO_RIGHT, DIR_RIGHT_TO_LEFT, TAB_INCREMENT
-
Method Summary
Modifier and TypeMethodDescriptionstatic StaticLayout.Builder
builder
(CharSequence source, int start, int end, TextPaint paint, int width) Obtain a builder for constructing StaticLayout objects.int
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
Return the width to which this Layout is ellipsizing, orLayout.getWidth()
if it is not doing anything special.int
getHeight
(boolean cap) Return the total height of this layout.int
getIndentAdjust
(int line, Layout.Alignment align) Returns the left indent for a line.boolean
getLineContainsTab
(int line) Returns whether the specified line contains one or more characters that need to be handled specially, like tabs.int
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 Directions
getLineDirections
(int line) Returns the directional run information for the specified line.int
getLineForVertical
(int vertical) Get the line number corresponding to the specified vertical position.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 (seeLayout.DIR_LEFT_TO_RIGHT
,Layout.DIR_RIGHT_TO_LEFT
).int
Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.Methods inherited from class icyllis.modernui.text.Layout
draw, drawBackground, drawText, getAlignment, getCursorPath, getDesiredWidth, getDesiredWidth, getDesiredWidth, getDesiredWidthWithLimit, getHeight, getLineAscent, getLineBaseline, getLineBottom, getLineBounds, getLineEnd, getLineForOffset, getLineLeft, getLineMax, getLineRangeForDraw, getLineRight, getLineVisibleEnd, getLineWidth, getOffsetForHorizontal, getOffsetForHorizontal, getOffsetToLeftOf, getOffsetToRightOf, getPaint, getParagraphAlignment, getParagraphLeft, getParagraphRight, getPrimaryHorizontal, getPrimaryHorizontal, getSecondaryHorizontal, getSecondaryHorizontal, getSelectionPath, getText, getTextDirectionHeuristic, getWidth, increaseWidthTo, isLevelBoundary, isRtlCharAt, primaryIsTrailingPrevious, primaryIsTrailingPreviousAllLineOffsets
-
Field Details
-
MARKER
public static final org.apache.logging.log4j.Marker MARKER
-
-
Method Details
-
builder
@NonNull public static StaticLayout.Builder builder(@NonNull CharSequence source, @IntRange(from=0L) int start, @IntRange(from=0L) int end, @NonNull TextPaint paint, @IntRange(from=0L) int width) Obtain a builder for constructing StaticLayout objects.- Parameters:
source
- The text to be laid out, optionally with spansstart
- The start index (inclusive) of the textend
- The end index (exclusive) of the textpaint
- The base (default) paint used for layoutwidth
- The width in pixels for each line- Returns:
- a builder object used for constructing the StaticLayout
-
getLineForVertical
public int getLineForVertical(int vertical) Description copied from class:Layout
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.- Overrides:
getLineForVertical
in classLayout
-
getLineCount
public int getLineCount()Description copied from class:Layout
Return the number of lines of text in this layout.- Specified by:
getLineCount
in classLayout
-
getLineTop
public int getLineTop(int line) Description copied from class:Layout
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.- Specified by:
getLineTop
in classLayout
-
getLineDescent
public int getLineDescent(int line) Description copied from class:Layout
Return the descent of the specified line(0…getLineCount() - 1).- Specified by:
getLineDescent
in classLayout
-
getLineStart
public int getLineStart(int line) Description copied from class:Layout
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.- Specified by:
getLineStart
in classLayout
-
getParagraphDirection
public int getParagraphDirection(int line) Description copied from class:Layout
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 (seeLayout.DIR_LEFT_TO_RIGHT
,Layout.DIR_RIGHT_TO_LEFT
).- Specified by:
getParagraphDirection
in classLayout
-
getLineContainsTab
public boolean getLineContainsTab(int line) Description copied from class:Layout
Returns whether the specified line contains one or more characters that need to be handled specially, like tabs.- Specified by:
getLineContainsTab
in classLayout
-
getLineDirections
Description copied from class:Layout
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.
- Specified by:
getLineDirections
in classLayout
-
getTopPadding
public int getTopPadding()Description copied from class:Layout
Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.- Specified by:
getTopPadding
in classLayout
-
getBottomPadding
public int getBottomPadding()Description copied from class:Layout
Returns the number of extra pixels of descent padding in the bottom line of the Layout.- Specified by:
getBottomPadding
in classLayout
-
getIndentAdjust
Description copied from class:Layout
Returns the left indent for a line.- Overrides:
getIndentAdjust
in classLayout
-
getEllipsisCount
public int getEllipsisCount(int line) Description copied from class:Layout
Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.- Specified by:
getEllipsisCount
in classLayout
-
getEllipsisStart
public int getEllipsisStart(int line) Description copied from class:Layout
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().)- Specified by:
getEllipsisStart
in classLayout
-
getEllipsizedWidth
public int getEllipsizedWidth()Description copied from class:Layout
Return the width to which this Layout is ellipsizing, orLayout.getWidth()
if it is not doing anything special.- Overrides:
getEllipsizedWidth
in classLayout
-
getHeight
public int getHeight(boolean cap) Return the total height of this layout.
-