موارد الخطوط

يحدّد مورد الخطوط خطًا مخصّصًا يمكنك استخدامه في تطبيقك. ويمكن أن تكون الخطوط عبارة عن ملفات خطوط فردية أو مجموعة من ملفات الخطوط، وتُعرف باسم مجموعة الخطوط، وتكون محدّدة في ملف 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!" />