Так как мое требование переопределить существующий textView, полученный из findViewById(getResources().getIdentifier("xxx", "id", "android"));
, поэтому я не могу просто попробовать onDraw()
другого ответа.
Но я просто придумываю правильные шаги, чтобы исправить мою проблему,вот окончательный результат от Layout Inspector:
![enter image description here](https://i.stack.imgur.com/FnA7o.png)
Поскольку я хотел просто удалить верхние пробелы, поэтому мне не нужно выбирать другиешрифт для удаления пробелов.
Вот критический код для его исправления:
Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);
myTextView.setPadding(0, 0, 0, 0);
myTextView.setIncludeFontPadding(false);
Первый ключ - это настраиваемый шрифт "fonts / myCustomFont.otf", который имеет пробел внизу.но не сверху, вы можете легко понять это, открыв файл otf и щелкнув любой шрифт в Android Studio:
![enter image description here](https://i.stack.imgur.com/xRobI.png)
Как видите,курсор внизу имеет дополнительный интервал, но не сверху, поэтому он решил мою проблему.
Второй ключ - , вы не можете просто пропустить любой код , в противном случае он можетне работает.Вот почему вы можете найти, что некоторые люди комментируют, что ответ работает, а некоторые другие комментируют, что он не работает.
Давайте проиллюстрируем, что произойдет, если я удалю один из них.
Без setTypeface(mfont);
:
![enter image description here](https://i.stack.imgur.com/KbkzK.png)
Без setPadding(0, 0, 0, 0);
:
![enter image description here](https://i.stack.imgur.com/yydTK.png)
Без setIncludeFontPadding(false);
:
![enter image description here](https://i.stack.imgur.com/JOQnQ.png)
Без 3 из них (т.е. оригинал):
![enter image description here](https://i.stack.imgur.com/ELEwZ.png)