DynamicLayout.Builder
  public
  static
  final
  
  class
  DynamicLayout.Builder
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.text.DynamicLayout.Builder | 
Builder for dynamic layouts. The builder is the preferred pattern for constructing
 DynamicLayout objects and should be preferred over the constructors, particularly to access
 newer features. To build a dynamic layout, first call obtain(CharSequence, TextPaint, int) with the required
 arguments (base, paint, and width), then call setters for optional parameters, and finally
 build() to build the DynamicLayout object. Parameters not explicitly set will get
 default values.
Summary
| Public methods | |
|---|---|
| 
        
        
        
        
        
        DynamicLayout | 
      build()
      Build the  | 
| 
        
        
        static
        
        
        DynamicLayout.Builder | 
      obtain(CharSequence base, TextPaint paint, int width)
      Obtain a builder for constructing DynamicLayout objects. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setAlignment(Layout.Alignment alignment)
      Set the alignment. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setBreakStrategy(int breakStrategy)
      Set break strategy, useful for selecting high quality or balanced paragraph layout options. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setDisplayText(CharSequence display)
      Set the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setEllipsize(TextUtils.TruncateAt ellipsize)
      Set ellipsizing on the layout. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setEllipsizedWidth(int ellipsizedWidth)
      Set the width as used for ellipsizing purposes, if it differs from the normal layout width. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setHyphenationFrequency(int hyphenationFrequency)
      Set hyphenation frequency, to control the amount of automatic hyphenation used. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setIncludePad(boolean includePad)
      Set whether to include extra space beyond font ascent and descent (which is needed to avoid clipping in some languages, such as Arabic and Kannada). | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setJustificationMode(int justificationMode)
      Set paragraph justification mode. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setLineBreakConfig(LineBreakConfig lineBreakConfig)
      Set the line break configuration. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setLineSpacing(float spacingAdd, float spacingMult)
      Set line spacing parameters. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setMinimumFontMetrics(Paint.FontMetrics minimumFontMetrics)
      Set the minimum font metrics used for line spacing. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setShiftDrawingOffsetForStartOverhang(boolean shiftDrawingOffsetForStartOverhang)
      Set true for shifting the drawing x offset for showing overhang at the start position. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setTextDirection(TextDirectionHeuristic textDir)
      Set the text direction heuristic. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setUseBoundsForWidth(boolean useBoundsForWidth)
      Set true for using width of bounding box as a source of automatic line breaking and drawing. | 
| 
        
        
        
        
        
        DynamicLayout.Builder | 
      setUseLineSpacingFromFallbacks(boolean useLineSpacingFromFallbacks)
      Set whether to respect the ascent and descent of the fallback fonts that are used in displaying the text (which is needed to avoid text from consecutive lines running into each other). | 
| Inherited methods | |
|---|---|
Public methods
build
public DynamicLayout build ()
Build the DynamicLayout after options have been set.
 
Note: the builder object must not be reused in any way after calling this method. Setting parameters after calling this method, or calling it a second time on the same builder object, will likely lead to unexpected results.
| Returns | |
|---|---|
| DynamicLayout | the newly constructed DynamicLayoutobject
 This value cannot benull. | 
obtain
public static DynamicLayout.Builder obtain (CharSequence base, TextPaint paint, int width)
Obtain a builder for constructing DynamicLayout objects.
| Parameters | |
|---|---|
| base | CharSequence: This value cannot benull. | 
| paint | TextPaint: This value cannot benull. | 
| width | int: Value is 0 or greater | 
| Returns | |
|---|---|
| DynamicLayout.Builder | This value cannot be null. | 
setAlignment
public DynamicLayout.Builder setAlignment (Layout.Alignment alignment)
Set the alignment. The default is Layout.Alignment.ALIGN_NORMAL.
| Parameters | |
|---|---|
| alignment | Layout.Alignment: Alignment for the resultingDynamicLayoutThis value cannot benull. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
setBreakStrategy
public DynamicLayout.Builder setBreakStrategy (int breakStrategy)
Set break strategy, useful for selecting high quality or balanced paragraph layout
 options. The default is Layout.BREAK_STRATEGY_SIMPLE.
| Parameters | |
|---|---|
| breakStrategy | int: break strategy for paragraph layout
 Value isLineBreaker.BREAK_STRATEGY_SIMPLE,LineBreaker.BREAK_STRATEGY_HIGH_QUALITY, orLineBreaker.BREAK_STRATEGY_BALANCED | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
See also:
setDisplayText
public DynamicLayout.Builder setDisplayText (CharSequence display)
Set the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed. The default is the 'base' text passed to the builder's constructor.
| Parameters | |
|---|---|
| display | CharSequence: the transformed text
 This value cannot benull. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
setEllipsize
public DynamicLayout.Builder setEllipsize (TextUtils.TruncateAt ellipsize)
Set ellipsizing on the layout. Causes words that are longer than the view is wide, or
 exceeding the number of lines (see #setMaxLines) in the case of
 TextUtils.TruncateAt.END or
 TextUtils.TruncateAt.MARQUEE, to be ellipsized instead of broken.
 The default is null, indicating no ellipsis is to be applied.
| Parameters | |
|---|---|
| ellipsize | TextUtils.TruncateAt: type of ellipsis behavior
 This value may benull. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining | 
See also:
setEllipsizedWidth
public DynamicLayout.Builder setEllipsizedWidth (int ellipsizedWidth)
Set the width as used for ellipsizing purposes, if it differs from the normal layout
 width. The default is the width passed to obtain(CharSequence, TextPaint, int).
| Parameters | |
|---|---|
| ellipsizedWidth | int: width used for ellipsizing, in pixels
 Value is 0 or greater | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
See also:
setHyphenationFrequency
public DynamicLayout.Builder setHyphenationFrequency (int hyphenationFrequency)
Set hyphenation frequency, to control the amount of automatic hyphenation used. The
 possible values are defined in Layout, by constants named with the pattern
 HYPHENATION_FREQUENCY_*. The default is
 Layout.HYPHENATION_FREQUENCY_NONE.
| Parameters | |
|---|---|
| hyphenationFrequency | int: hyphenation frequency for the paragraph
 Value isLayout.HYPHENATION_FREQUENCY_NORMAL,Layout.HYPHENATION_FREQUENCY_NORMAL_FAST,Layout.HYPHENATION_FREQUENCY_FULL,Layout.HYPHENATION_FREQUENCY_FULL_FAST, orLayout.HYPHENATION_FREQUENCY_NONE | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
See also:
setIncludePad
public DynamicLayout.Builder setIncludePad (boolean includePad)
Set whether to include extra space beyond font ascent and descent (which is needed to
 avoid clipping in some languages, such as Arabic and Kannada). The default is
 true.
| Parameters | |
|---|---|
| includePad | boolean: whether to include padding | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
See also:
setJustificationMode
public DynamicLayout.Builder setJustificationMode (int justificationMode)
Set paragraph justification mode. The default value is
 Layout.JUSTIFICATION_MODE_NONE. If the last line is too short for justification,
 the last line will be displayed with the alignment set by setAlignment(Alignment).
| Parameters | |
|---|---|
| justificationMode | int: justification mode for the paragraph.
 Value isLineBreaker.JUSTIFICATION_MODE_NONE,LineBreaker.JUSTIFICATION_MODE_INTER_WORD, orLineBreaker.JUSTIFICATION_MODE_INTER_CHARACTER | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining.
 This value cannot be null. | 
setLineBreakConfig
public DynamicLayout.Builder setLineBreakConfig (LineBreakConfig lineBreakConfig)
Set the line break configuration. The line break will be passed to native used for
 calculating the text wrapping. The default value of the line break style is
 LineBreakConfig.LINE_BREAK_STYLE_NONE
| Parameters | |
|---|---|
| lineBreakConfig | LineBreakConfig: the line break configuration for text wrapping.
 This value cannot benull. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining.
 This value cannot be null. | 
setLineSpacing
public DynamicLayout.Builder setLineSpacing (float spacingAdd, float spacingMult)
Set line spacing parameters. Each line will have its line spacing multiplied by
 spacingMult and then increased by spacingAdd. The default is 0.0 for
 spacingAdd and 1.0 for spacingMult.
| Parameters | |
|---|---|
| spacingAdd | float: the amount of line spacing addition | 
| spacingMult | float: the line spacing multiplier
 Value is 0.0f or greater | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
See also:
setMinimumFontMetrics
public DynamicLayout.Builder setMinimumFontMetrics (Paint.FontMetrics minimumFontMetrics)
Set the minimum font metrics used for line spacing.
 null is the default value. If null is set or left as default, the
 font metrics obtained by Paint.getFontMetricsForLocale(Paint.FontMetrics) is
 used.
 
 The minimum meaning here is the minimum value of line spacing: maximum value of
 Paint.ascent(), minimum value of Paint.descent().
 
 By setting this value, each line will have minimum line spacing regardless of the text
 rendered. For example, usually Japanese script has larger vertical metrics than Latin
 script. By setting the metrics obtained by
 Paint.getFontMetricsForLocale(Paint.FontMetrics) for Japanese or leave it
 null if the Paint's locale is Japanese, the line spacing for Japanese is reserved
 if the text is an English text. If the vertical metrics of the text is larger than
 Japanese, for example Burmese, the bigger font metrics is used.
| Parameters | |
|---|---|
| minimumFontMetrics | Paint.FontMetrics: A minimum font metrics. Passingnullfor using the
                          value obtained byPaint.getFontMetricsForLocale(Paint.FontMetrics) | 
| Returns | |
|---|---|
| DynamicLayout.Builder | |
setShiftDrawingOffsetForStartOverhang
public DynamicLayout.Builder setShiftDrawingOffsetForStartOverhang (boolean shiftDrawingOffsetForStartOverhang)
Set true for shifting the drawing x offset for showing overhang at the start position.
 This flag is ignored if the Layout.getUseBoundsForWidth() is false.
 If this value is false, the Layout draws text from the zero even if there is a glyph
 stroke in a region where the x coordinate is negative.
 If this value is true, the Layout draws text with shifting the x coordinate of the
 drawing bounding box.
 This value is false by default.
| Parameters | |
|---|---|
| shiftDrawingOffsetForStartOverhang | boolean: true for shifting the drawing offset for
                                          showing the stroke that is in the region where
                                          the x coordinate is negative. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | This value cannot be null. | 
setTextDirection
public DynamicLayout.Builder setTextDirection (TextDirectionHeuristic textDir)
Set the text direction heuristic. The text direction heuristic is used to resolve text
 direction per-paragraph based on the input text. The default is
 TextDirectionHeuristics.FIRSTSTRONG_LTR.
| Parameters | |
|---|---|
| textDir | TextDirectionHeuristic: text direction heuristic for resolving bidi behavior.
 This value cannot benull. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
setUseBoundsForWidth
public DynamicLayout.Builder setUseBoundsForWidth (boolean useBoundsForWidth)
Set true for using width of bounding box as a source of automatic line breaking and drawing. If this value is false, the Layout determines the drawing offset and automatic line breaking based on total advances. By setting true, use all joined glyph's bounding boxes as a source of text width. If the font has glyphs that have negative bearing X or its xMax is greater than advance, the glyph clipping can happen because the drawing area may be bigger. By setting this to true, the Layout will reserve more spaces for drawing.
| Parameters | |
|---|---|
| useBoundsForWidth | boolean: True for using bounding box, false for advances. | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder instance
 This value cannot be null. | 
setUseLineSpacingFromFallbacks
public DynamicLayout.Builder setUseLineSpacingFromFallbacks (boolean useLineSpacingFromFallbacks)
Set whether to respect the ascent and descent of the fallback fonts that are used in displaying the text (which is needed to avoid text from consecutive lines running into each other). If set, fallback fonts that end up getting used can increase the ascent and descent of the lines that they are used on.
For backward compatibility reasons, the default is false, but setting this to
 true is strongly recommended. It is required to be true if text could be in languages
 like Burmese or Tibetan where text is typically much taller or deeper than Latin text.
| Parameters | |
|---|---|
| useLineSpacingFromFallbacks | boolean: whether to expand linespacing based on fallback fonts | 
| Returns | |
|---|---|
| DynamicLayout.Builder | this builder, useful for chaining
 This value cannot be null. | 
