(一)Android的字体结构图
top:文字的最顶端离baseline的距离(ascent的极限距离负数)
ascent:文字的上端离baseline的距离(负数)
descent:文字的下端离baseline的距离(正数)
bottom:文字最下端的距离(descent的极限距离正数)
lead:上行文字descent到下行ascent的距离
(三 ) 绘图位置应用
1 . 参数x与参数paint的关系:
要点1:Canvas的文本绘制是根据字符串原点(origin)进行定位。
要点2:Canvas的字符串原点受Paint的textAlign影响。
条件 | 现象 |
Paint.setTextAlign(Paint.Align.CENTER) | x以字符串水平中间位置的为原点(origin) |
Paint.setTextAlign(Paint.Align.LEFT) | x以字符串水平最左位置的为原点(origin) |
Paint.setTextAlign(Paint.Align.RIGHT) | x以字符串水平最右位置的为原点(origin) |
2 , 绘制 文字纵向的控制:
假定要参考的纵坐标为 y0 ;
1,居中 y0 - fm.descent + ( fm.bottom - fm.top ) / 2 ;
2, 居上 y0 - fm.descent ;
3, 居下 y0 - fm.ascent ;