اکنون می توانید از پوشش های منابع زمان اجرا (RRO) برای تغییر فونت ها استفاده کنید. با افزودن فونت های سفارشی برای ایجاد یک بسته فونت، می توانید از فونت ها در تم ها استفاده کنید و از RRO ها برای اعمال سفارشی سازی ها استفاده کنید.
این وظایف را کامل کنید:
ساختار فایل نمونه و فایل های نمونه در custom-fonts.zip ارائه شده است. این فایل را به صورت محلی برای استفاده خودتان دانلود و استخراج کنید.
یک بسته فونت بسازید
برای ساخت بسته فونت:
- تمام فایل های
ttf
فونت را به بسته فونت در پارتیشنvendor
اضافه کنید. به عنوان مثال:vendor/[oem]/fonts/[oem]-sans/
- فایل
Android.mk
را برای بسته فونت ایجاد کنید. به عنوان مثال:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- مطمئن شوید که ماژول در پارتیشن
product
در پوشهetc
نصب شده باشد. برای انجام این کار، تأیید کنید که ماژول دارای پرچم های زیر است:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
کد نمونه ارائه شده در بالا، تعریف کاملی از ماژول بسته فونت را نشان می دهد.
- یک فایل با نام
fonts.mk
برای بسته فونت ایجاد کنید و سپس فایل های فونتttf
را بهPRODUCT_PACKAGES
اضافه کنید. به عنوان مثال:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
به عنوان مثال:
PRODUCT_PACKAGES := \ [font name].ttf \
یک بسته پوشش دستگاه ایجاد کنید
- یک ماژول به نام
fonts_customization.xml
بسازید تا به بیلد اضافه شود. این ماژول به فایلfonts_customization.xml
اشاره میکند که شامل خانوادههای فونت است و فایلهای make تمام بستههای فونت را فراخوانی میکند. به عنوان مثال:vendor/[oem]/[device]_overlay/fonts/Android.mk
- خانواده های فونت را ایجاد کنید:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
سطح ریشه فایل باید یک تگ
fonts-modification
باشد. خانواده های فونت را برای هر یک از بسته های فونت در این عنصر اضافه کنید. علاوه بر این،customizationType="new-named-family"
را به هر خانواده فونت اضافه کنید و مطمئن شوید که هر کدام یک ویژگیname
دارند. این نام بعداً برای دسترسی به خانواده فونت استفاده می شود. این فایل باید به ماژولfonts_customizations.xml
که قبلا درAndroid.mk
تعریف شده است اضافه شود.نمونه ارائه شده در بالا حاوی یک فایل معتبر
fonts_customization.xml
است. - ایجاد
fonts.mk
به عنوان مثال:vendor/[oem]/[device]_overlay/fonts/fonts.mk
-
fonts_customization.xml
را تحت پرچمPRODUCT_PACKAGES
اضافه کنید. - هر یک از بسته های فونت ایجاد شده قبلی را فراخوانی کنید.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- ماژول فونت را به بیلد تحت
PRODUCT_PACKAGES
اضافه کنید و سپس دوباره بسازید. فونت ها روی سیستم نصب خواهند شد. - بررسی کنید که فایلهای فونتهای
ttf
در پوشه/product/fonts
روی دستگاه هستند. - بررسی کنید که
fonts_customization.xml
در/product/etc/
در دستگاه باشد.
از خانواده فونت های سیستم جدید استفاده کنید
برای استفاده از خانواده فونت های سیستم جدید:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>