Android中提供drawText的方法:

  • public void drawText(@NonNull char[] text, int index, int count, float x, float y, @NonNull Paint paint);
  • public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint);
  • public void drawText(@NonNull String text, int start, int end, float x, float y, @NonNull Paint paint);
  • public void drawText(@NonNull CharSequence text, int start, int end, float x, float y, @NonNull Paint paint);

各参数含义:

  • text:绘制的文本
  • index:char[] text数组的下标
  • count:index下标往后绘制内容的数量
  • start:text的开始下标
  • end:text的结束下标
  • x:开始绘制的x坐标(以baseLine为参考)
  • y:开始绘制的y坐标(以baseLine为参考)
  • paint:画笔,可定义画笔的各种属性

** 那问题来了,baseLine是什么鬼? **
这要从Android的文本绘制的规则说起,文本绘制不是简单从绘制区的最顶部来时往下绘制,它有个baseLine作文绘制的参考。如图:
Android绘制的那些事 - DrawText的那些事
baseLine:如图的红色线,baseLine既不在文本绘制区的顶部也在中间
top:文本绘制区的最顶部(负值)
bottom:文本绘制区的最底部(正值)
ascent:(负值)
descent:(正值)


待续。。。。。

相关文章:

猜你喜欢
相关资源
相似解决方案