Ресурсы шрифтов

Ресурс шрифта определяет собственный шрифт, который вы можете использовать в своем приложении. Шрифты могут представлять собой отдельные файлы шрифтов или набор файлов шрифтов, известный как семейство шрифтов и определенный в XML.

Также узнайте, как определить шрифты в XML или вместо этого использовать загружаемые шрифты .

Шрифт в комплекте

Вы можете объединить шрифты в качестве ресурсов в приложении. Шрифты компилируются в файл R и автоматически доступны в системе как ресурс. Затем вы можете получить доступ к этим шрифтам с помощью типа ресурса font .

расположение файла:
res/font/ filename .ttf ( .ttf , .ttc , .otf или .xml )
Имя файла используется в качестве идентификатора ресурса.
ссылка на ресурс:
В XML: @[package:]font/ font_name
синтаксис:
<?xml version="1.0" encoding="utf-8"?>
<font-family>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" />
</font-family>
элементы:
<font-family>
Необходимый. Это должен быть корневой узел.

Никаких атрибутов.

<font>
Определяет один шрифт в семействе. Не содержит дочерних узлов.

Атрибуты:

android:fontStyle
Ключевое слово . Определяет стиль шрифта. Этот атрибут используется, когда шрифт загружается в стек шрифтов, и переопределяет любую информацию о стиле в таблицах заголовков шрифта. Если вы не укажете атрибут, приложение будет использовать значение из таблиц заголовков шрифтов. Постоянное значение — normal или italic .
android:fontWeight
Целое число . Вес шрифта. Этот атрибут используется, когда шрифт загружается в стек шрифтов, и переопределяет любую информацию о весе в таблицах заголовков шрифта. Значение атрибута должно быть кратно 100 в диапазоне от 100 до 900 включительно. Если вы не укажете атрибут, приложение будет использовать значение из таблиц заголовков шрифтов. Наиболее распространенные значения — 400 для обычного веса и 700 для жирного.
пример:
XML-файл, сохраненный в res/font/lobster.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>

XML-файл, сохраненный в res/layout/ , который применяет шрифт к TextView :

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

Загружаемый шрифт

Загружаемый ресурс шрифта определяет собственный шрифт, который вы можете использовать в приложении. Этот шрифт недоступен в самом приложении. Вместо этого шрифт извлекается из поставщика шрифтов.

расположение файла:
res/font/ filename .xml Имя файла — это идентификатор ресурса.
ссылка на ресурс:
В XML: @[package:]font/ font_name
синтаксис:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
элементы:
<font-family>
Необходимый. Это должен быть корневой узел.

атрибуты:

android:fontProviderAuthority
Нить . Необходимый . Полномочия поставщика шрифтов, определяющие запрос шрифта.
android:fontProviderPackage
Нить . Необходимый . Имя пакета поставщика шрифтов, который будет использоваться для запроса. Это используется для проверки личности провайдера.
android:fontProviderQuery
Нить . Необходимый . Строковый запрос шрифта. Обратитесь к документации вашего поставщика шрифтов, чтобы узнать формат этой строки.
android:fontProviderCerts
Ресурс массива . Необходимый . Определяет наборы хешей для сертификатов, используемых для подписи этого поставщика. Это используется для проверки личности поставщика и требуется только в том случае, если поставщик не является частью образа системы. Значение может указывать на один список (ресурс массива строк) или список списков (ресурс массива), где каждый отдельный список представляет одну коллекцию хэшей подписей. Эти значения можно найти в документации вашего поставщика шрифтов.
пример:
XML-файл, сохраненный в res/font/lobster.xml :
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    android:fontProviderAuthority="com.example.fontprovider.authority"
    android:fontProviderPackage="com.example.fontprovider"
    android:fontProviderQuery="Lobster"
    android:fontProviderCerts="@array/certs">
</font-family>

XML-файл, сохраненный в res/values/ , который определяет массив сертификатов:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

XML-файл, сохраненный в res/layout/ , который применяет шрифт к TextView :

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />