خانه » لایبرری های مفید و تجربیات شخصی خیلی مفید !!! » استفاده از فونت در XML در اندروید (اندروید استدیو ۳ و support library 26)

استفاده از فونت در XML در اندروید (اندروید استدیو ۳ و support library 26)

مدت های زیادی بود که از نبود فونت در اندروید رنچ می بردیم ، و باید از متد setTypeFace استفاده می کردیم، مشکلات و دردسرها و …

و ساخت Custom View ها برای استفاده از setTypeFace در دل خود CustomView که در این پست هم آموزش داده بودم :

ساخت PersianTextView در اندروید (textView با قابلیت تغییر فونت فارسی و فارسی کردن اعداد)

 

اما در نسخه ۲۶ لایبرری support بلاخره ، اندروید به دادمون رسید و این رو برامون اضافه کرد، حالا دیگه میتونید به برنامه فونت اضافه کنید و حتی در style و theme از فونت استفاده کنید.

 

نیازمندی ها:

  • حداقل support library 26
  • حداقل Android studio 3

شروع سریع

 

۱ – خوب برای شروع کار ابتدا یک فولدر به اسم font در زیر فولدر res بسازید (در نسخه ۳ اندروید استدیو فقط فونت ها شناسایی می شوند و در نسخه های قدیمی تر ارور می دهد)

۲ – فونت های خود را داخل این پوشه قرار دهید (با پسوند ttf)

۳ – برای فونت های خود باید یک font-family بسازید مثل زیر :

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

</font-family>

که میتونید اون رو به اسم فونت و با پسوند .xml بسازید، در این فایل فونت رو تعریف کرده و حالت های اون (normal – bold – italic) رو تعریف می کنید، فقط به دلیل اینکه این ویژگی برای اندروید ۸ (نسخه ۲۶) به بعد هست، برای اینکه نسخه های قبلی بتونن با لایبرری support کار کنن باید app:font ها رو نیز تعریف کرد.

 

تقریبا دیگه تموم شده، حالا میتونید در TextView ها و EditText ها از font-family جدید استفاده کنید.

امااااا ، چون این ویژگی مربوط به نسخه ۸ بعد هست، برای استفاده در نسخه های پایین تر باید از TextView های موجود در لایبرری support یعنی از android.support.v7.widget.AppCompatTextView استفاده کنیم، همین طور برای EditText و Button باید از نسخه های AppCompat استفاده کنیم:

 

<android.support.v7.widget.AppCompatTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/iran_sans"
                android:text="تست نمایید"/>

 

نحوه استفاده در style:

    <style name="textView_style">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:fontFamily">@font/iran_sans</item>
    </style>

 

امیدوارم از این مطلب استفاده کرده باشید و کارتون رو راه بندازه، یادتون نره که از نسخه های AppCompat برای View ها باید استفاده کنید.

موفق باشید

 

اطلاعات بیشتر رو در لینک زیر ببینید:

https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی، نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir ، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم. رزومه : iact.ir/cv

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا