Class NumberSpan

java.lang.Object
icyllis.modernui.markflow.core.style.NumberSpan
All Implemented Interfaces:
LeadingMarginSpan, ParagraphStyle

public class NumberSpan extends Object implements LeadingMarginSpan
  • Constructor Details

    • NumberSpan

      public NumberSpan(int blockMargin, int color, String number)
  • Method Details

    • measure

      public static void measure(@NonNull TextView textView, @NonNull Spanned markdown)
      Process supplied `text` argument and supply TextView paint to all NumberSpans in order for them to measure number.

      NB, this method must be called before setting text to a TextView (`TextView#setText` internally can trigger new Layout creation which will ask for leading margins right away)

      Parameters:
      textView - to which markdown will be applied
      markdown - parsed markdown to process
    • getLeadingMargin

      public int getLeadingMargin(@NonNull TextPaint paint, 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.

      The leading margin is on the left for lines in a left-to-right paragraph, and on the right for lines in a right-to-left paragraph. The default implementation is to call LeadingMarginSpan.getLeadingMargin(boolean).

      Added by Modern UI.

      Specified by:
      getLeadingMargin in interface LeadingMarginSpan
      Parameters:
      paint - the base paint (read-only)
      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(@NonNull Canvas c, @NonNull TextPaint p, int x, int dir, int top, int baseline, int bottom, @NonNull CharSequence text, int start, int end, boolean first, @NonNull 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(TextPaint, 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