android - 为我的应用程序中的所有文本使用自定义字体
问题描述
按照此过程,我想将 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
,编译错误就解决了!
这里缺少什么?
解决方案
创建字体系列
字体系列是一组字体文件及其样式和粗细细节。在 Android 中,您可以创建一个新的字体系列作为 XML 资源并将其作为一个单元进行访问,而不是将每个样式和粗细作为单独的资源引用。通过这样做,系统可以根据您尝试使用的文本样式选择正确的字体。
要创建字体系列,请在 Android Studio 中执行以下步骤:
- 右键单击字体文件夹,然后转到新建 > 字体资源文件。将出现新建资源文件窗口。
- 输入文件名,然后单击“确定”。新字体资源 XML 在编辑器中打开。
将每个字体文件、样式和粗细属性包含在元素中。以下 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"/>
查看完整文档。
希望这对您有所帮助。
推荐阅读
- entity-framework - 具有数百个表的数据库的单个 DbContext 或多个 DbContext?
- sbt - 教程中实现 sbt 的问题
- excel - VBA按最旧日期排序
- sql - SQLite:如何将 WHERE 子句隔离到 SELECT 语句中的一个数据集?
- xamarin.forms - FFImageLoading 静态缓存图片
- c# - Select LINQ 中的 LINQ - 会有性能问题吗?
- java - 我如何从 JSON GoogleDirection 获取 TagName
- python - 如何将记忆装饰器应用于实例方法?
- pdo - 我没有找到错误 SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
- r - 如何在R中将列组合成单列