منابع فونت
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
یک منبع فونت یک فونت سفارشی را تعریف می کند که می توانید در برنامه خود از آن استفاده کنید. فونت ها می توانند فایل های فونت جداگانه یا مجموعه ای از فایل های فونت باشند که به عنوان یک خانواده فونت شناخته می شوند و در 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!" />
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[],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 ```"]]