Чтобы переводить контент на ваш предпочитаемый язык, Google использует технологии на основе искусственного интеллекта. Переводы от ИИ могут содержать ошибки.
Функция скачиваемых шрифтов позволяет API запрашивать шрифты у приложения-поставщика, а не объединять файлы в приложении или разрешать приложению скачивать шрифты. Скачиваемые шрифты доступны на устройствах с Android API версии 14 и выше через библиотеку AndroidX Core.
Скачиваемые шрифты обладают следующими преимуществами:
Уменьшает размер приложения, что повышает долю успешных установок.
Повышается общая производительность системы, поскольку несколько приложений могут использовать один и тот же шрифт через поставщика. Это позволяет экономить мобильный интернет, память телефона и место на диске. В этой модели шрифт извлекается по сети, когда это необходимо.
Чтобы узнать больше о скачиваемых шрифтах, ознакомьтесь с примером приложения DownloadableFonts.
Как работают скачиваемые шрифты?
Поставщик шрифтов – это приложение, которое получает шрифты и кеширует их локально, чтобы другие приложения могли запрашивать и использовать их. Этот процесс показан на рисунке ниже.
Рисунок 1. Процесс скачиваемых шрифтов.
Основные сведения
Функцию скачиваемых шрифтов можно использовать следующими способами, которые подробно описаны в следующих разделах:
Как использовать скачиваемые шрифты с Android Studio и сервисами Google Play
Вы можете настроить скачивание шрифтов в приложении с помощью Android Studio 3.0 или более поздней версии. Чтобы вам было проще начать работу с функцией скачиваемых шрифтов, вы можете использовать поставщика шрифтов из сервисов Google Play.
В редакторе макетов выберите TextView. Затем в разделе Атрибуты выберите fontFamily > Другие шрифты.
Рисунок 2. С помощью редактора макетов.
Откроется окно Ресурсы.
В меню Источник выберите Google Fonts.
В окне Шрифты выберите шрифт в разделе "Доступные для скачивания".
Выберите Создать скачиваемый шрифт и нажмите ОК.
Рисунок 3. Выбор шрифта в окне Ресурсы.
Android Studio автоматически генерирует XML-файлы, необходимые для правильного отображения шрифта в приложении.
Рисунок 4. Предварительный просмотр файла шрифта.
Как использовать скачиваемые шрифты программно
Начиная с Android 8.0 (уровень API 26), AndroidX Core полностью поддерживает скачиваемые шрифты. Дополнительную информацию об использовании библиотеки AndroidX Core можно найти в разделе Скачиваемые шрифты в библиотеке AndroidX Core на этой странице.
Чтобы использовать функцию скачиваемых шрифтов программно, взаимодействуйте с двумя ключевыми классами:
Приложение получает шрифты от поставщика с помощью API FontsContract. У каждого поставщика есть свои ограничения на поддерживаемые версии Android и язык запросов. Дополнительную информацию о версиях Android и формате запросов можно найти в документации поставщика.
Чтобы скачать шрифт, выполните следующие действия:
Создайте экземпляр класса android.graphics.fonts.FontRequest, чтобы запросить шрифт у поставщика. Чтобы создать запрос, передайте следующие параметры:
Поставщик шрифтов.
Пакет поставщика шрифтов, используемый для подтверждения его личности.
Строка запроса шрифта. Дополнительную информацию о форматах запросов можно найти в документации поставщика шрифтов, например Google Fonts.
Список наборов хешей для сертификатов, которые используются для подтверждения личности поставщика.
Переопределите метод onTypefaceRetrieved(), чтобы указать, что запрос шрифта выполнен. Укажите полученный шрифт в качестве параметра.
Этот метод позволяет задать нужный шрифт. Например, вы можете задать шрифт для элемента TextView.
Вызовите метод FontsContract.requestFont(), чтобы получить шрифт от поставщика. Этот метод инициирует проверку, чтобы определить, существует ли шрифт в кеше. Если шрифт недоступен локально, метод вызывает поставщика шрифтов, асинхронно получает шрифт и передает результат обратному вызову. Передайте следующие параметры:
Экземпляр класса android.graphics.fonts.FontRequest
Обратный вызов для получения результатов запроса шрифта.
Обработчик для получения шрифтов в цепочке
В следующем примере кода показан весь процесс скачивания шрифтов:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
Дополнительную информацию о том, как скачать шрифт от поставщика, можно найти в примере приложения DownloadableFonts.
Как использовать скачиваемые шрифты с AndroidX Core
AndroidX Core поддерживает скачиваемые шрифты на устройствах с Android API 14 и более поздних версий. Пакет androidx.core.provider содержит классы FontsContractCompat и FontRequest, которые обеспечивают поддержку обратно совместимой функции скачиваемых шрифтов. Классы AndroidX содержат методы, аналогичные методам фреймворка, а процесс скачивания шрифтов похож на описанный в разделе Программное использование скачиваемых шрифтов.
Чтобы скачать шрифты с помощью AndroidX, импортируйте классы FontsContractCompat и FontRequest из пакета androidx.core.provider. Создавайте экземпляры этих классов вместо классов фреймворка FontsContract и android.graphics.fonts.FontRequest.
Добавьте зависимость AndroidX Core
Чтобы использовать классы FontsContractCompat и FontRequest, необходимо изменить зависимости пути к классам в проекте приложения в среде разработки.
Чтобы добавить AndroidX Core в проект приложения, добавьте в файл build.gradle приложения следующую зависимость:
Как использовать скачиваемые шрифты в качестве ресурсов в XML
Android 8.0 (уровень API 26) и AndroidX Core позволяют быстрее и удобнее объявлять пользовательский шрифт как ресурс в макете XML. Это значит, что шрифт не нужно добавлять в пакет в качестве объекта. Вы можете настроить собственный шрифт для всей темы, что ускоряет удобство использования для нескольких насыщенностей и стилей, таких как полужирный, средний или светлый, если они предусмотрены.
Создайте XML-файл в папке res/font.
Добавьте корневой элемент <font-family> и задайте атрибуты, связанные со шрифтом, как показано в следующем примере XML-файла:
В XML-файле макета укажите ссылку на файл @font/font_file_name. Вы также можете использовать метод getFont(), чтобы получить файл программно, например getFont(R.font.font_file_name).
Предварительное объявление шрифтов в манифесте
Распаковка макета и получение ресурсов – это синхронные задачи. По умолчанию первая попытка получить шрифты инициирует запрос к поставщику шрифтов и, следовательно, увеличивает время первого макета. Чтобы избежать задержки, вы можете заранее объявить в манифесте шрифты, которые нужно получить.
После того как система получит шрифт от поставщика, он сразу станет доступен. Если получение шрифта занимает больше времени, чем ожидалось, система прерывает процесс и использует шрифт по умолчанию.
Чтобы предварительно объявить шрифты в манифесте, выполните следующие действия:
Создайте массив ресурсов в файле res/values/arrays.xml и укажите шрифты, которые нужно предварительно загрузить.
Если поставщик шрифтов не предустановлен или вы используете библиотеку AndroidX Core, укажите сертификаты, которыми подписан поставщик шрифтов. Система использует сертификаты для проверки личности поставщика шрифтов.
Чтобы добавить сертификаты, выполните следующие действия:
Создайте массив строк с данными сертификата. Дополнительную информацию о сертификатах можно найти в документации поставщика шрифтов.
Задайте для атрибута fontProviderCerts значение массива.
android:fontProviderCerts="@array/certs"
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-10-17 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2026-10-17 UTC."],[],[]]