Оскільки моя вимога переосмислює наявний textView findViewById(getResources().getIdentifier("xxx", "id", "android"));
, то я не можу просто спробувати onDraw()
іншу відповідь.
Але я просто з'ясував правильні кроки, щоб вирішити свою проблему, ось кінцевий результат від інспектора макета:
Оскільки те, що я хотів, - це просто видалити верхні пробіли, тому мені не потрібно вибирати інший шрифт, щоб видалити пробіли внизу.
Ось критичний код для його виправлення:
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 з них (тобто оригінал):