Android自定义控件入门 02 文字基线

366 阅读1分钟

计算文字基线

整段文字高度的中线与BaseLine有段距离,暂设为dy,只要求出dy便可计算出基线

image.png top,bottom都是以基线为坐标相对来说的,bottom为正值,top为负值, 整个的高度allHegiht=bottom-top, 中线的位置middle=allHegiht/2

image.png

最后dy=middle-bottom

val fontMetrics = paint.fontMetricsInt  
val dy = (fontMetrics.bottom - fontMetrics.top) / 2 - fontMetrics.bottom  
val baseLine = (height / 2).toFloat() + dy