Android Monospace 不像固定间距
Android Monospace doesn't behave as a fixed-pitch
正如您在下面的屏幕截图中看到的,在 canvas 上绘制的两个长度相同但宽度不同的字符串却不同。我用的是 monospaced 字体,那不是保证画成一样的宽度吗?是因为字距调整吗?
Typeface.create(Typeface.MONOSPACE,Typeface.NORMAL)
这是 well-known Android 上 monosapce 字体的字距调整问题。看起来这是一个相当古老的话题。
有些人已经遇到过这个问题:
Android Monospace fonts aren't fixed width - 2013-06-11
Are Android monospace fonts actually fixed size? - 2016-06-22
Android monospace space ( ) width is different than character width - 2017-03-02
该问题也发生在移动网络环境中:
Font monospace Android 2.3 - 2013-07-11
用缺失字形解释问题的地方:
https://github.com/googlefonts/noto-fonts/issues/617
解法:
选项 1.:
寻找替代 fixed-width 字体可能是最简单的方法。找到一些有用的链接:
- https://1stwebdesigner.com/free-monospaced-fonts/
- https://www.fontsquirrel.com/ https://www.dafont.com/
- https://www.urbanfonts.com/free-fonts.htm
- https://www.1001freefonts.com/
选项 2.:
您可以使用 Spans 覆盖文本绘制。这个 post 可以帮助你:
选项 3.:
您可以修改等宽字体文件来修复字距。这个在线工具很有用:
http://www.glyphrstudio.com/online/
正如您在下面的屏幕截图中看到的,在 canvas 上绘制的两个长度相同但宽度不同的字符串却不同。我用的是 monospaced 字体,那不是保证画成一样的宽度吗?是因为字距调整吗?
Typeface.create(Typeface.MONOSPACE,Typeface.NORMAL)
这是 well-known Android 上 monosapce 字体的字距调整问题。看起来这是一个相当古老的话题。
有些人已经遇到过这个问题:
Android Monospace fonts aren't fixed width - 2013-06-11
Are Android monospace fonts actually fixed size? - 2016-06-22
Android monospace space ( ) width is different than character width - 2017-03-02
该问题也发生在移动网络环境中:
Font monospace Android 2.3 - 2013-07-11
用缺失字形解释问题的地方:
https://github.com/googlefonts/noto-fonts/issues/617
解法:
选项 1.:
寻找替代 fixed-width 字体可能是最简单的方法。找到一些有用的链接:
- https://1stwebdesigner.com/free-monospaced-fonts/
- https://www.fontsquirrel.com/ https://www.dafont.com/
- https://www.urbanfonts.com/free-fonts.htm
- https://www.1001freefonts.com/
选项 2.:
您可以使用 Spans 覆盖文本绘制。这个 post 可以帮助你:
选项 3.:
您可以修改等宽字体文件来修复字距。这个在线工具很有用: http://www.glyphrstudio.com/online/