如何使用属性 android:fontStyle="bold" 在 font_family.xml 中设置自定义字体

Khe*_*raj 2 android font-family android-fonts android-xml

我想在我的font_family.xml. 我fontStyle="bold"字体系列开发人员文档中没有找到粗体。它只有normalitalic属性。这是font_family.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <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>
Run Code Online (Sandbox Code Playgroud)

所以我必须使用像

<style name="fontBoldStyle" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/montserrat_semi_bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

或者像这样

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/montserrat_semi_bold"/>
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. 是什么fontStyle属性呢?即使我没有提供斜体字体font_family.xml,然后设置textStyle="italic"我的字体是斜体。
  2. 如何在字体系列中添加自定义粗体字体并设置android:fontStyle="bold"font_family.xml这样我就不必创建不同的样式,我只需要设置textStyle="bold"

那么我可以将 3 种字体设置normal, bold, italic为 font_family.xml 并android:fontFamily="@font/font_family"在 TextView 上设置然后我可以使用android:textStyle="bold"斜体或普通字体的解决方案是什么?

Jos*_*lin 6

对于您的第二个问题

您可以在 a 中添加自定义粗体字体,方法是font-family使用 定义字体fontWeight="700"

<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <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
        android:fontStyle="normal"
        android:fontWeight="700"
        android:font="@font/montserrat_semi_bold" />
</font-family>
Run Code Online (Sandbox Code Playgroud)

如果 aTextView使用它font-familywith textStyle="bold",它将显示在montserrat_semi_bold 中