android - 自定义字体垂直对齐的偏移量
问题描述
最近,我多次遇到自定义字体的一个特定问题。无论我是为 iOS、Android 还是网络编程 - 问题总是会发生。
使用任何类型的填充都可以,但考虑到应用程序必须具有响应性,这很糟糕。
那么如何删除字体下方的这个空间/距离?
解决方案
自定义字体的问题在于它们通常有上升/下降。
在这种情况下,下降器会导致问题。为了解决这个问题,我们必须编辑字体本身。
我们怎么能这样做?
有几种工具可以编辑您的字体。由于我在 Mac 上工作,因此我使用的是Apple Font Tool Suite。一旦你安装了这个,你需要打开终端并导航到包含你的字体的目录。之后输入以下命令:
ftxdumperfuser -t hhea -A d font.ttf
这将创建一个名为 font.hhea.xml 的文件,在文本编辑器中打开这个新文件并调整下降器的值。编辑并保存后,在终端中输入以下命令以重建您的字体文件:
ftxdumperfuser -t hhea -A f font.ttf
请注意,大多数字体都有三组不同的垂直度量。在 OS/2 表中的度量下:(1) WinAscent、WinDescent,(2) TypoAscender、TypoDescender,以及 (3) 在 hhea 表中:Ascender、Descender 和 LineGap。
命令将是:
ftxdumperfuser -t OS/2 -A d font.ttf - 完成编辑后:ftxdumperfuser -t OS/2 -A f font.ttf
仅更改 hhea 表中的降序将更改任何 Apple 设备的字体,但不会更改 Windows 设备。因此,始终建议更改所有三个上升/下降(尤其是 hhea 和 TypoAscender/TypoDescender)。
如果您碰巧在另一个操作系统上工作。只需使用任何工具来编辑字体并编辑给定的值。
推荐阅读
- c - C语言中else语句的CS50“预期表达式”?
- reactjs - Redux-Form 在 CHANGE 操作上删除字段
- reactjs - 使用 redux 连接的 React 组件时如何保持类型安全?
- vue.js - Nuxt 在异步返回数组时返回 '__ob__: Observer'
- django - 为什么我的 CSRF 令牌出现 403 错误 - Django - Vue Ressource
- python - 打印键和值时,它会打印键+值的次数与我的值中的数字一样多
- android - MutableLiveData 不起作用,ObservableField 起作用 - 为什么?
- kubernetes - 从在不同 k8s 集群中运行的 pod 启动不同 k8s 集群中的 pod
- python - python argwhere with and as well as or
- python-3.3 - 将列表作为输入并检查是否已排序时修复 EOF 错误?