如何在所有屏幕尺寸上仅设置一次Android字体大小?

麦克风

我意识到,dimens.xml我可以选择指定在整个应用程序中使用的值。所以我可以设置类似:

<dimen name="layoutFont">22dp</dimen>

但是,通过设置方式,我必须为layoutLargeFont创建类似的声明layoutXlargeFont,然后必须手动更改布局文件中的所有这些变量。

有没有一种方法可以对单个变量进行声明:layoutFont在Large或XLarge布局中使用时,其值不同?

卡拉库里

您可以为主题指定TextAppearance。这将应用于使用主题默认文本外观的任何TextView(以及TextView的子类)。

<style name="MyApp.Theme" parent="android:Theme.Holo">
    <!-- other theme attrs -->
    <item name="android:textAppearance">@style/TextAppearance</item>
</style>

<style name="TextAppearance" parent="android:TextAppearance">
    <item name="android:textSize">@dimen/layout_font</item>
</style>

你可以走得更远了一步,定义textAppearanceSmalltextAppearanceMediumtextAppearanceLarge

<style name="MyApp.Theme" parent="android:Theme.Holo">
    <!-- other theme attrs -->
    <item name="android:textAppearance">@style/TextAppearance</item>
    <item name="android:textAppearanceSmall">@style/TextAppearance.Small</item>
    <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
    <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item>
</style>

<style name="TextAppearance" parent="android:TextAppearance">
    <item name="android:textSize">@dimen/layout_font</item>
</style>

<style name="TextAppearance.Small">
    <item name="android:textSize">@dimen/layout_font_small</item>
</style>

<style name="TextAppearance.Medium">
    <item name="android:textSize">@dimen/layout_font_medium</item>
</style>

<style name="TextAppearance.Large">
    <item name="android:textSize">@dimen/layout_font_large</item>
</style>

当然,您可以使用适当的资源限定符来定义这些维度(我建议使用最小宽度的限定符-sw ### dp,如此此处所述)。有了所有这些,除非有特定的用途,否则您不必对任何内容设置任何textSize。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档