اکنون می توانید از پوشش های منابع زمان اجرا (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>