اضافه کردن فونت های سفارشی

اکنون می توانید از پوشش های منابع زمان اجرا (RRO) برای تغییر فونت ها استفاده کنید. با افزودن فونت های سفارشی برای ایجاد یک بسته فونت، می توانید از فونت ها در تم ها استفاده کنید و از RRO ها برای اعمال سفارشی سازی ها استفاده کنید.

این وظایف را کامل کنید:

ساختار فایل نمونه و فایل های نمونه در custom-fonts.zip ارائه شده است. این فایل را به صورت محلی برای استفاده خودتان دانلود و استخراج کنید.

یک بسته فونت بسازید

برای ساخت بسته فونت:

  1. تمام فایل های ttf فونت را به بسته فونت در پارتیشن vendor اضافه کنید. به عنوان مثال:

    vendor/[oem]/fonts/[oem]-sans/

  2. فایل Android.mk را برای بسته فونت ایجاد کنید. به عنوان مثال:

    vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

  3. مطمئن شوید که ماژول در پارتیشن product در پوشه etc نصب شده باشد. برای انجام این کار، تأیید کنید که ماژول دارای پرچم های زیر است:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts

    کد نمونه ارائه شده در بالا، تعریف کاملی از ماژول بسته فونت را نشان می دهد.

  4. یک فایل با نام fonts.mk برای بسته فونت ایجاد کنید و سپس فایل های فونت ttf را به PRODUCT_PACKAGES اضافه کنید. به عنوان مثال:

    vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk

    به عنوان مثال:

    PRODUCT_PACKAGES := \
    [font name].ttf \

یک بسته پوشش دستگاه ایجاد کنید

  1. یک ماژول به نام fonts_customization.xml بسازید تا به بیلد اضافه شود. این ماژول به فایل fonts_customization.xml اشاره می‌کند که شامل خانواده‌های فونت است و فایل‌های make تمام بسته‌های فونت را فراخوانی می‌کند. به عنوان مثال:

    vendor/[oem]/[device]_overlay/fonts/Android.mk

  2. خانواده های فونت را ایجاد کنید:

    vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml

    سطح ریشه فایل باید یک تگ fonts-modification باشد. خانواده های فونت را برای هر یک از بسته های فونت در این عنصر اضافه کنید. علاوه بر این، customizationType="new-named-family" را به هر خانواده فونت اضافه کنید و مطمئن شوید که هر کدام یک ویژگی name دارند. این نام بعداً برای دسترسی به خانواده فونت استفاده می شود. این فایل باید به ماژول fonts_customizations.xml که قبلا در Android.mk تعریف شده است اضافه شود.

    نمونه ارائه شده در بالا حاوی یک فایل معتبر fonts_customization.xml است.

  3. ایجاد fonts.mk به عنوان مثال:

    vendor/[oem]/[device]_overlay/fonts/fonts.mk

  4. fonts_customization.xml را تحت پرچم PRODUCT_PACKAGES اضافه کنید.
  5. هر یک از بسته های فونت ایجاد شده قبلی را فراخوانی کنید.

    $(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

  6. ماژول فونت را به بیلد تحت PRODUCT_PACKAGES اضافه کنید و سپس دوباره بسازید. فونت ها روی سیستم نصب خواهند شد.
  7. بررسی کنید که فایل‌های فونت‌های ttf در پوشه /product/fonts روی دستگاه هستند.
  8. بررسی کنید که fonts_customization.xml در /product/etc/ در دستگاه باشد.

از خانواده فونت های سیستم جدید استفاده کنید

برای استفاده از خانواده فونت های سیستم جدید:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>