Есть ли способ вернуться к Typeface.SERIF в StaticLayout?

Я создаю пользовательский класс View который отображает текст с помощью StaticLayout с пользовательским шрифтом, загруженным из файла StaticLayout . Основной вид шрифта – шрифт с засечками, а свойства TrueType в файле шрифта указывают на его засечку. Тем не менее, для символов, не входящих в шрифт, Android возвращается к шрифту sans-serif (он выглядит как Roboto или Noto, в зависимости от версии Android).

Есть ли способ контролировать это, чтобы механизм компоновки Android возвращался к шрифту с засечками? (Как, может быть, какая-то магическая строка для перехода к Paint#setFontFeatureSettings() или, возможно, способ указать стек шрифтов для использования в Paint ?)

Любое решение должно работать, когда приложение будет распространено, поэтому играть в игры с конфигурационными файлами Android не является вариантом. Кроме того, я знаю об этом вопросе (который по-прежнему остается без ответа через четыре года), но моя проблема немного отличается, хотя решение обеих проблем может быть одинаковым.

Solutions Collecting From Web of "Есть ли способ вернуться к Typeface.SERIF в StaticLayout?"

С Lollipop существует скрытый класс FontFamily и скрытый метод Typeface.createFromFamilies . Если вы очень осторожны, вы, вероятно, можете использовать этот материал путем отражения или другого обмана, но будьте готовы отказаться от публичного API.