使用 Android O 中的字体

Android O 改变了使用字体的方式。

Android O 引入了一项名为 Fonts in XML 的新功能,允许你将字体用作资源。这意味着,不需要将字体绑定为资产。字体现在在 R 文件中编译,并在系统中作为资源自动提供。

要添加新字体,你必须执行以下操作:

  • 创建一个新的资源目录:res/font
  • 将字体文件添加到此字体文件夹中。例如,通过添加 myfont.ttf,你将能够通过 R.font.myfont 使用此字体。

你还可以通过将以下 XML 文件添加到 res/font 目录来创建自己的字体系列

<?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>

你可以以相同的方式使用字体文件和字体系列文件:

  • **在 XML 文件中,**通过使用 android:fontFamily 属性,例如:

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

    或者像这样:

    <style name="customfontstyle" parent="@android:style/TextAppearance.Small">
        <item name="android:fontFamily">@font/myfont</item>
    </style>
    
  • 在你的代码中,使用以下代码行:

    Typeface typeface = getResources().getFont(R.font.myfont);
    textView.setTypeface(typeface);