Есть ли способ указать, что шрифт Android должен использовать номера подкладки, а не номера старого стиля?


Я использую Raleway, и по умолчанию используются номера старого стиля, где 3, 4, 5, 7 и 9 опускаются ниже базовой линии. На iOS я могу указать настройку функции, чтобы использовать" верхний регистр " (выравнивание) чисел:

UIFontFeatureSelectorIdentifierKey : @(kUpperCaseNumbersSelector)

Как это сделать на Android?

1 2

1 ответ:

Итак, для Android 5.0 и выше (API 21) Вы можете использовать свойство fontFeatureSettings, чтобы включить это:

TextView myTextView = findViewById(R.id.myTextView);
myTextView.setFontFeatureSettings("lnum"); // Enabling lining numbers

Который я протестировал для работы с Raleway. К сожалению, этого, вероятно, недостаточно. Существует аналогичный вопрос здесь, в котором предлагаемое решение состоит в том, чтобы повторно загрузить шрифт в генератор шрифтов FontSquirrel и заменить табличные глифы глифами номера подкладки.