Class HeadingSpan

All Implemented Interfaces:
LeadingMarginSpan, LineHeightSpan, ParagraphStyle, UpdateAppearance, UpdateLayout, WrapTogetherSpan

public class HeadingSpan extends MetricAffectingSpan implements LeadingMarginSpan, LineHeightSpan
  • Constructor Details

    • HeadingSpan

      public HeadingSpan(MarkdownTheme theme, int level)
  • Method Details

    • updateMeasureState

      public void updateMeasureState(@NonNull TextPaint paint)
      Description copied from class: MetricAffectingSpan
      Classes that extend MetricAffectingSpan implement this method to update the text formatting in a way that can change the width or height of characters.
      Specified by:
      updateMeasureState in class MetricAffectingSpan
      Parameters:
      paint - the paint used for measuring the text
    • getLeadingMargin

      public int getLeadingMargin(boolean first)
      Description copied from interface: LeadingMarginSpan
      Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it.
      Specified by:
      getLeadingMargin in interface LeadingMarginSpan
      Parameters:
      first - true if the request is for the first line of a paragraph, false for subsequent lines
      Returns:
      the offset for the margin.
    • drawLeadingMargin

      public void drawLeadingMargin(Canvas c, TextPaint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout)
      Description copied from interface: LeadingMarginSpan
      Renders the leading margin. This is called before the margin has been adjusted by the value returned by LeadingMarginSpan.getLeadingMargin(boolean).
      Specified by:
      drawLeadingMargin in interface LeadingMarginSpan
      Parameters:
      c - the canvas
      p - the paint. This should be left unchanged on exit.
      x - the current position of the margin
      dir - the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.
      top - the top of the line
      baseline - the baseline of the line
      bottom - the bottom of the line
      text - the text
      start - the start of the line
      end - the end of the line
      first - true if this is the first line of its paragraph
      layout - the layout containing this line
    • drawMargin

      public void drawMargin(Canvas c, TextPaint p, int left, int right, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout)
      Description copied from interface: LeadingMarginSpan
      Called when drawing the margin.

      The default implementation is to call LeadingMarginSpan.drawLeadingMargin(icyllis.modernui.graphics.Canvas, icyllis.modernui.text.TextPaint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, icyllis.modernui.text.Layout), where x is either left or right, depending on dir. This method allows to draw the trailing margin at the same time, not just the leading margin.

      Added by Modern UI.

      Specified by:
      drawMargin in interface LeadingMarginSpan
      Parameters:
      c - the canvas
      p - the paint. This should be left unchanged on exit.
      left - the current left position of the margin
      right - the current right position of the margin
      dir - the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.
      top - the top of the line
      baseline - the baseline of the line
      bottom - the bottom of the line
      text - the text
      start - the start of the line
      end - the end of the line
      first - true if this is the first line of its paragraph
      layout - the layout containing this line
    • chooseHeight

      public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int lineHeight, FontMetricsInt fm, TextPaint paint)
      Description copied from interface: LineHeightSpan
      Classes that implement this should define how the height is being calculated.
      Specified by:
      chooseHeight in interface LineHeightSpan
      Parameters:
      text - the text
      start - the start of the line
      end - the end of the line
      spanstartv - the start of the span
      lineHeight - the line height
      fm - font metrics of the paint, in integers
      paint - the paint