1.前言
本文以Canvas类的下面这个函数为基础,它用来在画布上绘制文本。
public void drawText(String text, float x, float y, Paint paint)
2.效果如图
3.按效果图说明
- 原点,图中红色圆点是最重要的,它是绘制文本时坐标系的的原点,是计算各线的基础点。
- 函数中的x表示到原点的水平距离,y表示到原点的垂直距离。
- baseline 是图中灰色的线,文字就画在它上面。它是从原点出发,水平方向画的一条线。
- 如果baseline的y为屏幕坐标的0,那么文字画在基线上面时,显示在屏幕外,屏幕内看不见。
- topline 图中绿色的线,以当前字体大小,计算出来的离基线最高的距离线。
- bottom line 图中蓝色的线,以当前字体大小,1行文本为基础,计算出来的离基线最低距离线。
- ascent line 图中青色线,以1行文本为基础,计算出来的离基线的距离上线。
- descent line 图中黄色线,以1行文本为基础,计算出来的离基线的距离下线。
- 关于 paint.setTextAlign(xxx);
- Align.CENTER 表示把文字的水平中间位置放在原点上。
- Align.RIGHT 表示文字在原点的右侧。
- Align.LEFT 表示文字在原点的左侧。(默认)