【问题标题】:How to use fonts for all pages in an android application app如何在 android 应用程序中为所有页面使用字体
【发布时间】:2017-11-24 13:14:28
【问题描述】:

我在我的项目中为 assets/font 和 main/font 应用了 vision.otf,并设置了 styles.xml 如下

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Material.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:fontFamily">@font/vision</item>
        <item name="fontFamily">@font/vision</item>
    </style>


    <style name="MyTextField" parent="@android:style/TextAppearance">
        <item name="android:ems">10</item>
        <item name="android:inputType">textPersonName</item>
        <item name="android:background">@null</item>
         <item name="android:textColor">@color/lightGrey</item>
        <item name="android:textColorHint">@color/lightGrey</item>
        <item name="android:backgroundTint">@color/lightGrey</item>
        <item name="android:layout_alignParentTop">true</item>
        <item name="android:layout_centerHorizontal">true</item>
        <item name="android:ellipsize">start</item>
        <item name="android:maxLines">1</item>
        <item name="android:gravity">center</item>

    </style>



</resources>

但字体样式在执行时根本无法改变。您能告诉我如何在不使用对象类的情况下覆盖字体系列吗?

【问题讨论】:

    标签: android css fonts


    【解决方案1】:

    您可以扩展您的应用程序类并在那里设置默认字体。

    有一个很棒的库,名为Calligraphy,它将减少您在应用程序扩展类中的大量工作,我已经使用了很长时间了。

    你可以这样做: 第 1 步:包含依赖项

    dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.3.0'
    }
    

    第 2 步:安装

    @Override
    public void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                            .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                            .setFontAttrId(R.attr.fontPath)
                            .build()
            );
    //....
    }
    

    这会将您选择的字体设置为整个应用程序。就这么简单!

    假设您需要更改特定视图的字体,您可以这样做:

    <TextView
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fontPath="fonts/Roboto-Bold.ttf"/>
    

    请浏览一下库,检查所有细节,例如如何组织字体资源等,它非常方便

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 2011-09-06
      • 2020-07-30
      • 1970-01-01
      • 2015-09-22
      • 2019-10-26
      相关资源
      最近更新 更多