字体

作者: MOMOsShare | 来源:发表于2022-05-19 11:06 被阅读0次

baseline: 上图中黑色的线。前面已经讲过了,它的作用是作为文字显示的基准线。

ascent / descent: 上图中绿色和橙色的线,它们的作用是限制普通字符的顶部和底部范围。
普通的字符,上不会高过 ascent ,下不会低过 descent ,例如上图中大部分的字形都显示在 ascent 和 descent 两条线的范围内。具体到 Android 的绘制中, ascent 的值是图中绿线和 baseline 的相对位移,它的值为负(因为它在 baseline 的上方); descent 的值是图中橙线和 baseline 相对位移,值为正(因为它在 baseline 的下方)。

top / bottom: 上图中蓝色红色的线,它们的作用是限制所有字形( glyph )的顶部和底部范围。

leading: 这个词在上图中没有标记出来,因为它并不是指的某条线和 baseline 的相对位移。 leading 指的是行的额外间距,即对于上下相邻的两行,上行的 bottom 线和下行的 top 线的距离,也就是上图中第一行的红线和第二行的蓝线的距离(对,就是那个小细缝)。
FontMetrics 提供的就是 Paint 根据当前字体和字号,得出的这些值的推荐值。它把这些值以变量的形式存储,供开发者需要时使用。

Canvas.drawText("中国",x,y,paint) y对应baseline
paint.getFontMetrics()
paint.getFontSpacing() = descent-ascent < bottom - top

垂直居中 (viewHeight 被居中view高度)
(viewHeight + paint.getFontSpacing())/2 - descent

paint.setTextSize(textSize);设置的是字体宽度
paint.measureText("中国aabb")

水平居中
(viewWidth - paint.measureText("中国aabb"))/2

参考文章:
https://www.jianshu.com/p/e4eeac9a5598

相关文章

  • 2019-07-31

    啦啦啦啦 特大字体大字体大字体大字体大字体大大字体大字体大字体字体 大字体大字体大字体大字体大字体大大字体大字体大...

  • CSS字体

    Serif 字体 Sans-serif 字体 Monospace 字体 Cursive 字体 Fantasy 字体...

  • CSS字体

    字体 字体的样式 font-family Serif 字体 Sans-serif 字体 Monospace 字体...

  • 字体

    字体样式 1. 字体大小 2. 字体粗细 3. 字体类型 4. 字体风格 5. 字体颜色 - 字体大小 font-...

  • 中国书法基本种类

    书法字体,就是书法风格的分类。书法字体,传统讲共有篆书字体、楷书字体、隶书字体、草书字体和行书字体五种,也就是五个...

  • MarkDown使用

    1号字体 2号字体 3号字体 4号字体 5号字体 6号字体 无序排列 Hello World! Hello Wor...

  • CSS阶段三:文本,行内元素,行内块元素操作

    字体 color 字体颜色 font-size 字体大小 font-family 字体样式 serif 衬线字体 ...

  • 2018-07-16 MarkDown语法

    1.标题写法 #= ##= 以此类推 分割线


    *** 字体 字体加粗**字体**字体斜体***字体***字...

  • HTML(二)常用标签

    一、字体标签 字体标签 < fon...... 作用:规定文本的字体、字体尺寸、字体颜色 示例: [小贴士]在HT...

  • CSS font-family中文字体对应的英文名称一览表

    windows常见内置中文字体 OS X常见内置中文字体 office安装后新增字体 开源字体 版权字体 版权字体...

网友评论

      本文标题:字体

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