موارد الخطوط
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يحدّد مورد الخط خطًا مخصّصًا يمكنك استخدامه في تطبيقك. الخطوط
يمكن أن تكون ملفات خطوط فردية أو مجموعة من ملفات الخطوط، تُعرف باسم
مجموعة الخطوط ويتم تحديدها في 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-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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 ```"]]