美文网首页
Android绘制文本- top, bottom, ascent

Android绘制文本- top, bottom, ascent

作者: Supreme_3114 | 来源:发表于2018-03-10 14:16 被阅读0次

    最近公司让做了验证码输入框的功能,用到了android绘制文本,网上查了一下资料,

    1.基准点是baseline(第三条线),绘制文本都是从baseline处开始的;

    2.ascent(负值):是baseline之上至字符最高处的距离;

    3.descent(正值):是baseline之下至字符最低处的距离(3至4之间的距离);

    4.leading:是上一行字符的descent到下一行的ascent之间的距离,也就是相邻行间的字符高度差;

    5.top(负值):是指的是最高字符到baseline的值,即ascent的最大值

    6.bottom(正值):是指最低字符到baseline的值,即descent的最大值

    baseline是基线,baseline以上是负值,baseline以下是正值,因此ascent和top都是负值,descent和bottom都是正值。

    比如

    public void drawText(String text, float x, float y, Paint paint)

    text:要绘制的文字 x:绘制原点x坐标 y:绘制原点y坐标 paint:用来做画的画笔

    x=getWidth()/2-paint.measureText(mText)/2;   //   x=控件的宽度/2-文本的宽度/2

    y=getHeight()/2+(fontMetrics.bottom-fontMetrics.top)/2-fontMetrics.bottom    //  y=控件的高度/2+文本的高度/2

    getWidth(): 控件的宽度(view的宽度)

    getHeight():控件的高度(view的高度)

    paint.measureText(mText)是精确的测出绘制文本的宽度

    fontMetrics.bottom-fontMetrics.top就是绘制文本的高度。

    相关文章

      网友评论

          本文标题:Android绘制文本- top, bottom, ascent

          本文链接:https://www.haomeiwen.com/subject/upvcixtx.html