如何在Android应用程序应用程序中的所有页面使用字体

时间:2017-11-24 02:45:39

标签: android css fonts

我在我的项目中应用了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>

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

1 个答案:

答案 0 :(得分: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"/>

请通过图书馆查看所有细节,例如如何整理字体资产等,这是一个非常方便的

希望它有所帮助。