我的应用程序支持多种语言。我这样更改了整个应用程序的字体:
<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默认字体稍大(请参见下图。左侧是默认字体):
为减小字体大小,我尝试这样做:
<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>
但是现在所有文本都变为相同大小,无论是标题,常规文本视图还是其他任何内容。
另一种解决方案是为每个包含文本的UI元素设置所需的字体大小。但这真的不值得。
因此,有没有办法将所有文本的大小减小0.8
之类的因素?