有没有办法指定 Android 的 TypeFace 应使用衬里数字而不是旧式数字?

i_a*_*orf 4 android typeface android-typeface

我使用 Raleway,默认设置是使用旧式数字,其中 3、4、5、7 和 9 下降到基线以下。在 iOS 上,我可以指定一个功能设置来使用“大写”(衬里)数字:

UIFontFeatureSelectorIdentifierKey : @(kUpperCaseNumbersSelector)
Run Code Online (Sandbox Code Playgroud)

我该如何在 Android 上执行此操作?

kco*_*ock 7

因此,对于 Android 5.0 及更高版本 (API 21),您可以使用 fontFeatureSettings 属性来启用此功能:

TextView myTextView = findViewById(R.id.myTextView);
myTextView.setFontFeatureSettings("lnum"); // Enabling lining numbers
Run Code Online (Sandbox Code Playgroud)

我已经测试过它可以与 Raleway 一起使用。不幸的是,这可能不是一个足够的选择。这里有一个类似的问题,建议的解决方案是将字体重新上传到 FontSquirrel 的字体生成器,并用衬里数字字形替换表格字形。