یک فونت به عنوان منبع XML اضافه کنید

Android 8.0 (سطح API 26) فونت ها را در XML معرفی می کند، ویژگی که به شما امکان می دهد از فونت ها به عنوان منبع استفاده کنید. می‌توانید فایل font در پوشه res/font/ اضافه کنید تا فونت‌ها را به عنوان منابع دسته‌بندی کنید. این فونت ها در فایل R شما کامپایل شده و به صورت خودکار در اندروید استودیو در دسترس هستند. با استفاده از نوع منبع font می توانید به منابع فونت دسترسی پیدا کنید. به عنوان مثال، برای دسترسی به یک منبع فونت، از @font/myfont یا R.font.myfont استفاده کنید.

برای استفاده از فونت‌ها در ویژگی XML در دستگاه‌های دارای Android 4.1 (سطح API 16) و بالاتر، از Support Library 26.0 استفاده کنید. برای اطلاعات بیشتر در مورد استفاده از کتابخانه پشتیبانی، به بخش استفاده از کتابخانه پشتیبانی مراجعه کنید.

برای افزودن فونت به عنوان منبع، مراحل زیر را در Android Studio انجام دهید:

  1. روی پوشه res کلیک راست کرده و به مسیر New > Android Resource Directory بروید. پنجره New Resource Directory ظاهر می شود.
  2. در لیست نوع منبع ، فونت را انتخاب کنید، سپس روی OK کلیک کنید.

    توجه : نام دایرکتوری منبع باید فونت باشد.

    افزودن فهرست منابع فونت

    شکل 1. افزودن فهرست منابع فونت.

  3. فایل های فونت خود را در پوشه font اضافه کنید.

    ساختار پوشه زیر R.font.dancing_script ، R.font.lobster و R.font.typo_graphica را ایجاد می کند.

    افزودن فایل های فونت در فهرست منابع

    شکل 2. افزودن فایل های فونت در دایرکتوری res/font .

  4. برای پیش نمایش فونت های فایل در ویرایشگر، روی یک فایل فونت دوبار کلیک کنید. پیش نمایش فایل فونت

    شکل 3. پیش نمایش فایل فونت.

یک خانواده فونت ایجاد کنید

خانواده فونت مجموعه ای از فایل های فونت به همراه جزئیات سبک و وزن است. در اندروید، به جای ارجاع به هر سبک و وزن به عنوان منابع جداگانه، می توانید یک خانواده فونت جدید به عنوان یک منبع XML ایجاد کنید و به عنوان یک واحد به آن دسترسی داشته باشید. با انجام این کار، به سیستم اجازه می دهید بر اساس سبک متنی که استفاده می کنید، فونت صحیح را انتخاب کند.

برای ایجاد یک خانواده فونت، مراحل زیر را در Android Studio انجام دهید:

  1. روی پوشه font کلیک راست کرده و New > Font resource file را انتخاب کنید. پنجره New Resource File ظاهر می شود.
  2. نام فایل را وارد کنید، سپس روی OK کلیک کنید. منبع فونت جدید XML در ویرایشگر باز می شود.
  3. هر فایل فونت، ویژگی سبک و وزن را در عنصر <font> قرار دهید. XML زیر اضافه کردن ویژگی های مرتبط با فونت در منبع فونت 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 استفاده کنید

با استفاده از ویژگی fontFamily از فونت‌های خود، چه یک فایل فونت یا یک فونت از یک خانواده فونت، در اشیاء TextView یا در سبک‌ها استفاده کنید.

توجه: وقتی از یک خانواده فونت استفاده می‌کنید، TextView به تنهایی برای استفاده از فایل‌های فونت آن خانواده تغییر می‌کند.

فونت ها را به TextView اضافه کنید

برای تنظیم فونت برای TextView یکی از موارد زیر را انجام دهید:

  • در فایل XML طرح بندی، ویژگی fontFamily را روی فایل فونتی که می خواهید به آن دسترسی داشته باشید، تنظیم کنید.
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
    
  • پنجره Properties را باز کنید تا فونت TextView را تنظیم کنید.
    1. برای باز کردن پنجره Properties یک نما را انتخاب کنید.

      توجه: پنجره Properties تنها زمانی در دسترس است که ویرایشگر طراحی باز باشد. تب Design را در پایین پنجره انتخاب کنید.

    2. ویژگی textAppearance را گسترش دهید و سپس فونت را از لیست fontFamily انتخاب کنید.
    3. انتخاب فونت از Properties

      شکل 4. انتخاب فونت از پنجره Properties .

پیش‌نمایش طرح‌بندی اندروید استودیو، که در سمت راست‌ترین صفحه در شکل 5 نشان داده شده است، به شما امکان می‌دهد فونت مجموعه‌ای را در TextView پیش‌نمایش کنید.

پیش نمایش فونت ها در پیش نمایش طرح

شکل 5. پیش نمایش فونت ها در پیش نمایش طرح.

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

فایل styles.xml باز کنید و ویژگی fontFamily را روی فایل فونتی که می خواهید به آن دسترسی داشته باشید تنظیم کنید.

  • <style name="customfontstyle" parent="@android:style/TextAppearance.Small">
        <item name="android:fontFamily">@font/lobster</item>
    </style>
    
  • از فونت ها به صورت برنامه نویسی استفاده کنید

    برای بازیابی فونت ها به صورت برنامه نویسی، متد getFont(int) را فراخوانی کنید و شناسه منبع فونتی را که می خواهید بازیابی کنید ارائه دهید. این متد یک شی Typeface را برمی گرداند. اگرچه سیستم بهترین سبک را برای شما از اطلاعات فونت ها انتخاب می کند، می توانید از روش setTypeface(android.graphics.Typeface, int) برای تنظیم حروف با سبک های خاص استفاده کنید.

    توجه: TextView این کار را برای شما انجام می دهد.

    کاتلین

    val typeface = resources.getFont(R.font.myfont)
    textView.typeface = typeface
    

    جاوا

    Typeface typeface = getResources().getFont(R.font.myfont);
    textView.setTypeface(typeface);
    

    از کتابخانه پشتیبانی استفاده کنید

    کتابخانه پشتیبانی 26.0 از فونت‌های XML در دستگاه‌های دارای Android نسخه 4.1 (سطح API 16) و بالاتر پشتیبانی می‌کند.

    توجه : وقتی خانواده فونت‌ها را در طرح‌بندی XML از طریق کتابخانه پشتیبانی اعلام می‌کنید، از فضای نام برنامه برای اطمینان از بارگیری فونت‌هایتان استفاده کنید.

    <?xml version="1.0" encoding="utf-8"?>
    <font-family xmlns:app="http://schemas.android.com/apk/res-auto">
        <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
        <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
    </font-family>
    

    برای بازیابی فونت ها به صورت برنامه ای، متد ResourceCompat.getFont(Context, int) را فراخوانی کنید و نمونه ای از Context و شناسه منبع را ارائه دهید.

    کاتلین

    val typeface = ResourcesCompat.getFont(context, R.font.myfont)
    

    جاوا

    Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);