Android Monospace не ведет себя как фиксированный шаг - PullRequest
2 голосов
/ 16 июня 2019

Как вы можете видеть на скриншоте ниже, две разные строки одинаковой длины не нарисованы с одинаковой шириной на холсте.Я использую моноширинный шрифт, так не обещают ли его рисовать с той же шириной?Это из-за кернинга?

Typeface.create(Typeface.MONOSPACE,Typeface.NORMAL)

enter image description here

1 Ответ

2 голосов
/ 22 июня 2019

Это известная проблема кернинга со шрифтом monosapce на Android. Похоже, это довольно старая тема.

Некоторые люди уже сталкивались с этой проблемой:

Шрифты Android Monospace не имеют фиксированной ширины - 2013-06-11

Действительно ли моноширинные шрифты Android имеют фиксированный размер? - 2016-06-22

Ширина моноширинного пространства Android () отличается от ширины символа - 2017-03-02

Проблема также возникла в мобильной веб-среде:

Шрифт моноширинный Android 2.3 - 2013-07-11

где проблема объяснена отсутствующим глифом:

https://github.com/googlefonts/noto-fonts/issues/617

Решения:

Вариант 1.:

Поиск альтернативного шрифта фиксированной ширины может быть самым простым способом. Несколько полезных ссылок для поиска:

Вариант 2 .:

Вы можете переопределить рисование текста, используя интервалы. Этот пост может помочь вам: https://stackoverflow.com/a/53452941/5823014

Вариант 3 .:

Вы можете изменить файл шрифта monospace для исправления кернинга. Этот онлайн-инструмент может быть полезен: http://www.glyphrstudio.com/online/

...