在这再次说明一下replacementSpan.size() , replacementSpan.draw()方法里面的参数的意义。
public abstract int getSize(@NonNull Paint paint, CharSequence text, @IntRange(from = 0) int start, @IntRange(from = 0) int end, @Nullable Paint.FontMetricsInt fm)
public abstract void draw(@NonNull Canvas canvas, CharSequence text,
@IntRange(from = 0) int start, @IntRange(from = 0) int end, float x,
int top, int y, int bottom, @NonNull Paint paint);
- canvas:用来绘制的画布;
- text:整个text;
- start:这个Span起始字符在text中的位置;
- end:这个Span结束字符在text中的位置;
- x:这个Span的其实水平坐标;
- y:这个Span的baseline的垂直坐标;
- top:这个Span的起始垂直坐标;
- bottom:这个Span的结束垂直坐标;
- paint:画笔