Ресурсы шрифтов
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Ресурс шрифта определяет собственный шрифт, который вы можете использовать в своем приложении. Шрифты могут представлять собой отдельные файлы шрифтов или набор файлов шрифтов, известный как семейство шрифтов и определенный в 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!" />
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 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"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Font resources\n\nA font resource defines a custom font that you can use in your app. Fonts\ncan be individual font files or a collection of font files, known as a\nfont family and defined in XML.\n\nAlso see how to define [fonts\nin XML](/guide/topics/ui/look-and-feel/fonts-in-xml) or instead use [Downloadable Fonts](/guide/topics/ui/look-and-feel/downloadable-fonts).\n\nBundled font\n------------\n\n\nYou can bundle fonts as resources in an app. Fonts are compiled in the\n`R` file and are automatically available in the system as a\nresource. You can then access these fonts with the help of the\n`font` resource type.\n\nfile location:\n: `res/font/`*filename*`.ttf`\n (`.ttf`, `.ttc`, `.otf`, or\n `.xml`) \n\n The filename is used as the resource ID.\n\nresource reference:\n: In XML: `@[package:]font/`*font_name*\n\nsyntax:\n:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family\u003e\n \u003cfont\n android:font=\"@[package:]font/font_to_include\"\n android:fontStyle=[\"normal\" | \"italic\"]\n android:fontWeight=\"weight_value\" /\u003e\n \u003c/font-family\u003e\n ```\n\nelements:\n:\n\n `\u003cfont-family\u003e`\n : **Required.** This must be the root node.\n\n No attributes.\n\n `\u003cfont\u003e`\n\n : Defines a single font within a family. Contains no child nodes. Attributes:\n\n `android:fontStyle`\n : *Keyword* . Defines the font style. This attribute is\n used when the font is loaded into the font stack and overrides\n any style information in the font's header tables. If you don't\n specify the attribute, the app uses the value from the font's\n header tables. The constant value is either\n `normal` or `italic`.\n\n `android:fontWeight`\n : *Integer*. The weight of the font. This attribute is\n used when the font is loaded into the font stack and overrides\n any weight information in the font's header tables. The\n attribute value must be a multiple\n of 100 between 100 and 900, inclusive. If you don't specify\n the attribute, the app uses the value from the font's header\n tables. The most common values are 400 for regular weight and 700\n for bold weight.\n\nexample:\n : XML file saved at `res/font/lobster.xml`: \n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n \u003cfont\n android:fontStyle=\"normal\"\n android:fontWeight=\"400\"\n android:font=\"@font/lobster_regular\" /\u003e\n \u003cfont\n android:fontStyle=\"italic\"\n android:fontWeight=\"400\"\n android:font=\"@font/lobster_italic\" /\u003e\n \u003c/font-family\u003e\n ```\n\n XML file saved in `res/layout/` that applies the font to a\n [TextView](/reference/android/widget/TextView):\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cEditText\n android:fontFamily=\"@font/lobster\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:text=\"Hello, World!\" /\u003e\n ```\n\nDownloadable font\n-----------------\n\n\nA downloadable font resource defines a custom font that you can use in an\napp. This font isn't available in the app itself. Instead, the font is\nretrieved from a font provider.\n\nfile location:\n: `res/font/`*filename*`.xml`\n The filename is the resource ID.\n\nresource reference:\n: In XML:`@[package:]font/`*font_name*\n\nsyntax:\n:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family\n android:fontProviderAuthority=\"authority\"\n android:fontProviderPackage=\"package\"\n android:fontProviderQuery=\"query\"\n android:fontProviderCerts=\"@[package:]array/array_resource\" /\u003e\n ```\n\nelements:\n:\n\n `\u003cfont-family\u003e`\n : **Required.** This must be the root node.\n\n attributes:\n\n `android:fontProviderAuthority`\n : *String* . **Required**. The authority of the font\n provider that defines the font request.\n\n `android:fontProviderPackage`\n : *String* . **Required**. The package name of the font\n provider to be used for the request. This is used to verify the\n identity of the provider.\n\n `android:fontProviderQuery`\n : *String* . **Required**. The string query of the font.\n Refer to your font provider's documentation on the format of this\n string.\n\n `android:fontProviderCerts`\n : *Array resource* . **Required**. Defines the sets of\n hashes for the certificates used to sign this provider. This is\n used to verify the identity of the provider and is only required\n if the provider isn't part of the system image. The value can\n point to a single list (a string array resource) or a list of lists\n (an array resource), where each individual list represents one\n collection of signature hashes. Refer to your font provider's\n documentation for these values.\n\n\nexample:\n : XML file saved at `res/font/lobster.xml`: \n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family xmlns:android=\"http://schemas.android.com/apk/res/android\"\n android:fontProviderAuthority=\"com.example.fontprovider.authority\"\n android:fontProviderPackage=\"com.example.fontprovider\"\n android:fontProviderQuery=\"Lobster\"\n android:fontProviderCerts=\"@array/certs\"\u003e\n \u003c/font-family\u003e\n ```\n\n XML file saved in `res/values/` that defines the cert array:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cresources\u003e\n \u003cstring-array name=\"certs\"\u003e\n \u003citem\u003eMIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...\u003c/item\u003e\n \u003c/string-array\u003e\n \u003c/resources\u003e\n ```\n\n XML file saved in `res/layout/` that applies the font to a\n [TextView](/reference/android/widget/TextView):\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cEditText\n android:fontFamily=\"@font/lobster\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:text=\"Hello, World!\" /\u003e\n ```"]]