FallbackLineSpacing 属性
前置知识点
字体行高
Android 底层通过获取字体文件内的参数计算得到该字体推荐使用的行高。
可以通过 Paint.getFontMetrics
获取。
其中 baseline 是文字绘制时的基线,canvas通过这条线为基准执行绘制指令,ascent 与 descent 是基于 baseline 的偏移量(向上为正,向下为负),行高由两者求差得到。
Fallback 机制
Android 里单个字体资源文件通常并不能满足所有字符显示需求,实际工作时是由多个字体文件组合,并通过字体 Fallback 机制决定某个字符所对应的字形。
FallbackLineSpacing 作用
字体推荐的行高是字体文件内定义的参数,不同的字体文件也不一定相同。该属性的作用是在文本测量与绘制时选择性禁用 Fallback 字体的行高。
android:fallbackLineSpacing="true"
开启 fallback 字体行高(系统默认)
系统在计算某行文字的行高时会对该行所有字符的 ascent 与 descent 取绝对值最大值,计算最终的行高。
此选项会导致 多语言混合排版高度不一 等问题
android:fallbackLineSpacing="false"
关闭 fallback 字体行高
系统在计算某行文字的行高时始终使用 BaseFamily 的 ascent 与 descent,作为最终的行高。
此选项可能会导致 文字裁切、重叠 等问题
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果