Мое приложение поддерживает несколько языков. Я изменил шрифт всего приложения так:
<style name="LightTheme" parent="Theme.MaterialComponents.Light">
<item name="android:fontFamily">@font/myfont</item>
<!-- target android sdk versions < 26 and > 14 if theme is other than AppCompat -->
<item name="fontFamily">@font/myfont</item>
...
</style>
Новый шрифт использует Roboto для английских букв (так же, как и шрифт Android по умолчанию).
Теперь дело в том, что размер всех текстов (текстовых представлений, кнопок, диалогов - все) немного больше, чем шрифт Android по умолчанию для английских и неанглийских букв (см. Рисунки ниже. Left - шрифт по умолчанию):
Чтобы уменьшить размер шрифта, я пробовал это:
<style name="LightTheme" parent="Theme.MaterialComponents.Light">
<item name="android:textViewStyle">@style/myTextViewStyle</item>
...
</style>
<style name="myTextViewStyle">
<item name="android:textSize">14sp</item>
</style>
Но теперь все тексты становятся одинакового размера, будь то заголовок, обычный текстовый просмотр или что-то еще.
Другим решением было бы установить желаемый размер шрифта для каждого элемента пользовательского интерфейса, который содержит текст. Но это действительно того не стоит.
Итак, есть ли способ уменьшить размер всех текстов с помощью такого коэффициента, как, например, 0.8
?