Так как мое требование переопределить существующий textView получить findViewById(getResources().getIdentifier("xxx", "id", "android"));
, поэтому я не могу просто попробовать onDraw()
другой ответ.
Но я только придумываю правильные шаги, чтобы исправить мою проблему, вот окончательный результат от Layout Inspector:
Поскольку я хотел просто удалить верхние пробелы, поэтому мне не нужно выбирать другой шрифт для удаления нижних пробелов.
Вот критический код, чтобы исправить это:
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:
Как видите, курсор внизу имеет дополнительный интервал, но не сверху, поэтому он решил мою проблему.
Второй ключ - вы не можете просто пропустить любой код , иначе он может не работать. Вот почему вы можете найти, что некоторые люди комментируют, что ответ работает, а некоторые другие люди говорят, что он не работает.
Давайте проиллюстрируем, что произойдет, если я уберу один из них.
Без setTypeface(mfont);
:
Без setPadding(0, 0, 0, 0);
:
Без setIncludeFontPadding(false);
:
Без 3 из них (то есть оригинал):