首页 > 解决方案 > 为我的应用程序中的所有文本使用自定义字体

问题描述

按照此过程,我想将 android 应用程序中所有文本的字体设置为特定名称。它是一种非英文字体,所以我将其粘贴app\src\main\assets\fonts并在 styles.xml 中编写了以下内容

    <item name="android:fontFamily">@fonts/my.ttf</item>
    <item name="fontFamily">@fonts/my.ttf</item>

但是,在 android studio 中构建并运行应用程序(模拟器弹出)后,我看到了默认字体,而不是我指定的字体。

顺便说一句,在那篇文章中,它使用@font. 但是,如果我这样写,我会看到找不到字体的错误。通过更改@fonts,编译错误就解决了!

这里缺少什么?

标签: androidcustom-font

解决方案


创建字体系列

字体系列是一组字体文件及其样式和粗细细节。在 Android 中,您可以创建一个新的字体系列作为 XML 资源并将其作为一个单元进行访问,而不是将每个样式和粗细作为单独的资源引用。通过这样做,系统可以根据您尝试使用的文本样式选择正确的字体。

要创建字体系列,请在 Android Studio 中执行以下步骤:

  1. 右键单击字体文件夹,然后转到新建 > 字体资源文件。将出现新建资源文件窗口。
  2. 输入文件名,然后单击“确定”。新字体资源 XML 在编辑器中打开。
  3. 将每个字体文件、样式和粗细属性包含在元素中。以下 XML 说明了在字体资源 XML 中添加与字体相关的属性:

      **<font-family 
            <font
                android:fontStyle="normal"
                android:fontWeight="400"
                android:font="@font/lobster_regular" />
            <font
                android:fontStyle="italic"
                android:fontWeight="400"
                android:font="@font/lobster_italic" />
        </font-family>**
    

将字体添加到 TextView

要为 TextView 设置字体,请执行以下操作之一:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/lobster"/>

查看完整文档。

希望这对您有所帮助。


推荐阅读