В Android 8.0 (уровень API 26) появилась функция использования шрифтов в XML, позволяющая применять шрифты в качестве ресурсов. Вы можете добавить файл font в папку res/font/ чтобы включить шрифты в качестве ресурсов. Эти шрифты компилируются в вашем R файле и автоматически становятся доступны в Android Studio. Вы можете получить доступ к ресурсам шрифтов, используя тип ресурса font . Например, для доступа к ресурсу шрифта используйте @font/myfont или R.font.myfont .
Для использования функции шрифтов в XML на устройствах под управлением Android 4.1 (уровень API 16) и выше используйте библиотеку поддержки 26.0. Дополнительную информацию об использовании библиотеки поддержки см. в разделе «Использование библиотеки поддержки» .
Чтобы добавить шрифты в качестве ресурсов, выполните следующие действия в Android Studio:
- Щелкните правой кнопкой мыши папку res и выберите New > Android resource directory . Откроется окно New Resource Directory .
- В списке «Тип ресурса» выберите шрифт , затем нажмите «ОК» .
Примечание : имя каталога ресурсов должно быть font .

Рисунок 1. Добавление каталога ресурсов шрифтов.
- Добавьте файлы шрифтов в папку
font.Приведенная ниже структура папок генерирует
R.font.dancing_script,R.font.lobsterиR.font.typo_graphica.
Рисунок 2. Добавление файлов шрифтов в каталог
res/font. - Дважды щелкните файл шрифта, чтобы просмотреть шрифты в этом файле в редакторе.

Рисунок 3. Предварительный просмотр файла шрифта.
Создайте семейство шрифтов
Семейство шрифтов — это набор файлов шрифтов, содержащих информацию о стиле и толщине. В Android вы можете создать новое семейство шрифтов в виде XML-ресурса и обращаться к нему как к единому целому, вместо того чтобы ссылаться на каждый стиль и толщину как на отдельные ресурсы. Таким образом, система выбирает правильный шрифт в зависимости от используемого стиля текста.
Для создания семейства шрифтов выполните следующие действия в Android Studio:
- Щелкните правой кнопкой мыши папку
fontи выберите «Создать» > «Файл ресурсов шрифта» . Откроется окно «Создать файл ресурсов» . - Введите имя файла, затем нажмите ОК . Новый XML-файл ресурса шрифта откроется в редакторе.
- Каждый атрибут, содержащий файл шрифта, стиль и толщину, должен быть заключен в элемент
<font>. Следующий XML-код иллюстрирует добавление атрибутов, связанных со шрифтом, в 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-макетах
Используйте свои шрифты, будь то отдельный файл шрифта или шрифт из семейства шрифтов, в объектах TextView или в стилях, используя атрибут fontFamily .
Примечание: При использовании семейства шрифтов TextView автоматически переключается, при необходимости, на использование файлов шрифтов из этого семейства.
Добавить шрифты в TextView
Чтобы задать шрифт для TextView , выполните одно из следующих действий:
- В XML-файле макета установите атрибут
fontFamilyна тот файл шрифта, к которому вы хотите получить доступ.<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
- Откройте окно «Свойства» , чтобы задать шрифт для
TextView.- Выберите нужный вид, чтобы открыть окно «Свойства» .
Примечание: Окно «Свойства» доступно только при открытом редакторе дизайна. Выберите вкладку «Дизайн» в нижней части окна.
- Разверните свойство textAppearance , а затем выберите шрифт из списка fontFamily .

Рисунок 4. Выбор шрифта в окне «Свойства» .
- Выберите нужный вид, чтобы открыть окно «Свойства» .
Предварительный просмотр макета в Android Studio, показанный в самой правой панели на рисунке 5, позволяет просмотреть набор шрифтов в TextView .

Рисунок 5. Предварительный просмотр шрифтов в режиме предварительного просмотра макета.
Добавить шрифты в стиль
Откройте файл styles.xml и установите атрибут fontFamily на тот файл шрифта, к которому вы хотите получить доступ.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
Используйте шрифты программно.
Для программного получения шрифтов вызовите метод getFont(int) и укажите идентификатор ресурса шрифта, который вы хотите получить. Этот метод возвращает объект Typeface . Хотя система выбирает для вас наилучший стиль на основе информации о шрифтах, вы можете использовать метод setTypeface(android.graphics.Typeface, int) для установки шрифта с определенными стилями.
Примечание: TextView делает это за вас.
Котлин
val typeface = resources.getFont(R.font.myfont) textView.typeface = typeface
Java
Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);
Воспользуйтесь библиотекой поддержки.
Библиотека поддержки 26.0 поддерживает шрифты в формате XML на устройствах под управлением Android 4.1 (уровень API 16) и выше.
Примечание : При объявлении семейств шрифтов в XML-макете через библиотеку поддержки используйте пространство имен приложения , чтобы гарантировать загрузку ваших шрифтов.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto"> <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/> <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" /> </font-family>
Для программного получения шрифтов вызовите метод ResourceCompat.getFont(Context, int) и укажите экземпляр объекта Context и идентификатор ресурса.
Котлин
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
