Android 如何使用粗体字体创建自定义字体系列

Android 如何使用粗体字体创建自定义字体系列,android,Android,我正在尝试使用此文档创建自定义字体系列。问题在于没有粗体属性,并且无法以编程方式将其设置为XML字体 将700设置为粗体字体的fontWeight值 正如文档中所示: 最常见的值是400表示常规重量,700表示粗体 重量 在lobster字体系列示例中,您将看到: <!-- bold --> <font android:fontStyle="normal" android:fontWeight="700" andr

我正在尝试使用此文档创建自定义字体系列。问题在于没有粗体属性,并且无法以编程方式将其设置为XML字体

将700设置为粗体字体的fontWeight值

正如文档中所示:

最常见的值是400表示常规重量,700表示粗体 重量

在lobster字体系列示例中,您将看到:

<!-- bold -->
<font
    android:fontStyle="normal"
    android:fontWeight="700"
    android:font="@font/lobster_bold" />

并且,如果您使用的是支持库:

<!-- bold -->
<font
    app:font="@font/lobster_bold"
    app:fontStyle="normal"
    app:fontWeight="700" />

从下载Roboto字体系列

提取文件夹并获取Roboto-Bold.ttf文件,然后将此字体文件粘贴到res>font文件夹中

现在您可以像这样在xml中使用这种字体

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


您还可以设置一种简单的字体,并将android:textStyle=“bold”设置为加粗文本

除了@jeprubio answer之外,我还应该补充一点,如果您对不同的字体样式使用一个字体系列资源

例如,您有serif_normal.ttf和serif_bold.ttf字体,并且只有一种字体 名为serif_font.xml的族资源,如下所示:



对于粗体重量或正常,您可以使用

android:textStyle=“正常|粗体”

也可以创建如下自定义样式:


@字体/sarif\u字体
@字体/sarif\u字体
大胆的
//另一个属性

签出完整描述。

所以我需要创建两个字体系列?对于普通字体和粗体字体?不,这是一个系列,您有一个元素定义普通字体,另一个元素定义斜体字体,现在您应该将粗体字体添加为其他字体(同一系列中有3个元素)。请注意,fontwweight=“700”是什么定义了粗体样式而不是字体样式仍然需要添加
app
android
前缀吗?我在API 26和28上仅使用了
app
,但仍然有效。我已经有一段时间没有使用此代码了,但我已经检查了它,根据支持库的此文档,只需要
app
名称空间。我刚刚编辑了答案。你说得对,谢谢@FlorianWaltherLink已断开。@Jorgepartor链接已更新。
<?xml version="1.0" encoding="utf-8"?>
<font
    android:font="@font/serif_normal"
    android:fontStyle="normal"
    android:fontWeight="400"
    app:font="@font/serif_normal"
    app:fontStyle="normal"
    app:fontWeight="400" />

<font
    android:font="@font/serif_bold"
    android:fontStyle="normal"
    android:fontWeight="700"
    app:font="@font/serif_bold"
    app:fontStyle="normal"
    app:fontWeight="700" />
<style name="TextAppearance.BoldFond" parent="android:TextAppearance">
    <item name="android:fontFamily">@font/sarif_font</item>
    <item name="fontFamily">@font/sarif_font</item>
    <item name="android:textStyle">bold</item>
    //another attributes
</style>