एक्सएमएल रिसॉर्स के तौर पर फ़ॉन्ट जोड़ना

Compose को आज़माएं
Jetpack Compose, Android के लिए यूज़र इंटरफ़ेस (यूआई) टूलकिट है. हम इसका इस्तेमाल करने की सलाह देते हैं. Compose में टेक्स्ट का इस्तेमाल करने का तरीका जानें.

Android 8.0 (एपीआई लेवल 26) में, एक्सएमएल में फ़ॉन्ट की सुविधा जोड़ी गई है. इसकी मदद से, फ़ॉन्ट को संसाधनों के तौर पर इस्तेमाल किया जा सकता है. res/font/ फ़ोल्डर में font फ़ाइल जोड़कर, फ़ॉन्ट को संसाधनों के तौर पर बंडल किया जा सकता है. इन फ़ॉन्ट को आपकी R फ़ाइल में कंपाइल किया जाता है. साथ ही, ये Android Studio में अपने-आप उपलब्ध हो जाते हैं. font संसाधन टाइप का इस्तेमाल करके, फ़ॉन्ट संसाधनों को ऐक्सेस किया जा सकता है. उदाहरण के लिए, किसी फ़ॉन्ट संसाधन को ऐक्सेस करने के लिए, @font/myfont या R.font.myfont का इस्तेमाल करें.

Android 4.1 (एपीआई लेवल 16) और इसके बाद के वर्शन वाले डिवाइसों पर, एक्सएमएल में फ़ॉन्ट की सुविधा का इस्तेमाल करने के लिए, Support Library 26.0 का इस्तेमाल करें. Support Library का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Support Library का इस्तेमाल करना सेक्शन देखें.

फ़ॉन्ट को संसाधनों के तौर पर जोड़ने के लिए, Android Studio में यह तरीका अपनाएं:

  1. res फ़ोल्डर पर राइट-क्लिक करें और New > Android resource directory पर जाएं. The New Resource Directory विंडो दिखती है.
  2. Resource type सूची में, font को चुनें. इसके बाद, OK पर क्लिक करें.

    ध्यान दें: संसाधन डायरेक्ट्री का नाम font होना चाहिए.

    फ़ॉन्ट रिसॉर्स डायरेक्ट्री जोड़ना

    पहली इमेज. फ़ॉन्ट संसाधन डायरेक्ट्री जोड़ना.

  3. font फ़ोल्डर में अपनी फ़ॉन्ट फ़ाइलें जोड़ें.

    नीचे दिया गया फ़ोल्डर स्ट्रक्चर, R.font.dancing_script, R.font.lobster और R.font.typo_graphica जनरेट करता है.

    रिसॉर्स डायरेक्ट्री में फ़ॉन्ट फ़ाइलें जोड़ना

    दूसरी इमेज. res/font डायरेक्ट्री में फ़ॉन्ट फ़ाइलें जोड़ना.

  4. एडिटर में फ़ाइल के फ़ॉन्ट की झलक देखने के लिए, किसी फ़ॉन्ट फ़ाइल पर दो बार क्लिक करें. फ़ॉन्ट फ़ाइल की झलक देखना

    तीसरी इमेज. फ़ॉन्ट फ़ाइल की झलक देखना.

कोई फ़ॉन्ट फ़ैमिली बनाना

फ़ॉन्ट फ़ैमिली, फ़ॉन्ट फ़ाइलों का एक सेट होती है. इसमें स्टाइल और मोटाई की जानकारी भी शामिल होती है. Android में, नई फ़ॉन्ट फ़ैमिली को एक्सएमएल संसाधन के तौर पर बनाया जा सकता है. साथ ही, हर स्टाइल और मोटाई को अलग-अलग संसाधनों के तौर पर रेफ़र करने के बजाय, इसे एक यूनिट के तौर पर ऐक्सेस किया जा सकता है. ऐसा करने से, सिस्टम आपके इस्तेमाल किए जा रहे टेक्स्ट स्टाइल के आधार पर सही फ़ॉन्ट चुनता है.

कोई फ़ॉन्ट फ़ैमिली बनाने के लिए, Android Studio में यह तरीका अपनाएं:

  1. font फ़ोल्डर पर राइट-क्लिक करें और New > Font resource file को चुनें. New Resource File विंडो दिखती है.
  2. फ़ाइल का नाम डालें. इसके बाद, OK पर क्लिक करें. नया फ़ॉन्ट संसाधन एक्सएमएल एडिटर में खुलता है.
  3. हर फ़ॉन्ट फ़ाइल, स्टाइल, और मोटाई एट्रिब्यूट को <font> एलिमेंट में शामिल करें. यहां दिए गए एक्सएमएल में, फ़ॉन्ट संसाधन एक्सएमएल में फ़ॉन्ट से जुड़े एट्रिब्यूट जोड़ने का तरीका बताया गया है:
    <?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>

एक्सएमएल लेआउट में फ़ॉन्ट का इस्तेमाल करना

अपने फ़ॉन्ट इस्तेमाल करें. इनमें, कोई एक फ़ॉन्ट फ़ाइल या फ़ॉन्ट फ़ैमिली का कोई फ़ॉन्ट इस्तेमाल किया जा सकता है. इन फ़ॉन्ट को TextView ऑब्जेक्ट या स्टाइल में, fontFamily एट्रिब्यूट का इस्तेमाल करके इस्तेमाल किया जा सकता है.

ध्यान दें: फ़ॉन्ट फ़ैमिली का इस्तेमाल करने पर, TextView ज़रूरत के हिसाब से अपने-आप उस फ़ैमिली की फ़ॉन्ट फ़ाइलें इस्तेमाल करता है.

किसी TextView में फ़ॉन्ट जोड़ना

TextView के लिए कोई फ़ॉन्ट सेट करने के लिए, इनमें से कोई एक तरीका अपनाएं:

  • लेआउट एक्सएमएल फ़ाइल में, fontFamily एट्रिब्यूट को उस फ़ॉन्ट फ़ाइल पर सेट करें जिसे आपको ऐक्सेस करना है.
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
  • TextView के लिए फ़ॉन्ट सेट करने के लिए, Properties विंडो खोलें.
    1. Properties विंडो खोलने के लिए, कोई व्यू चुनें.

      ध्यान दें: The Properties विंडो सिर्फ़ तब उपलब्ध होती है, जब डिज़ाइन एडिटर खुला हो. विंडो में सबसे नीचे मौजूद, Design टैब चुनें.

    2. textAppearance प्रॉपर्टी को बड़ा करें. इसके बाद, fontFamily सूची से फ़ॉन्ट चुनें.
    3. प्रॉपर्टी से फ़ॉन्ट चुनना

      चौथी इमेज. Properties विंडो से फ़ॉन्ट चुनना.

Android Studio के लेआउट की झलक, पांचवीं इमेज में सबसे दाईं ओर मौजूद पैन में दिखती है, इसकी मदद से, TextView में सेट किए गए फ़ॉन्ट की झलक देखी जा सकती है.

लेआउट की झलक में फ़ॉन्ट की झलक देखना

पांचवीं इमेज. लेआउट की झलक में फ़ॉन्ट की झलक देखना.

किसी स्टाइल में फ़ॉन्ट जोड़ना

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 आपके लिए यह काम करता है.

    Kotlin

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

    Java

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

    Support Library का इस्तेमाल करना

    Support Library 26.0, Android 4.1 (एपीआई लेवल 16) और इसके बाद के वर्शन वाले डिवाइसों पर, एक्सएमएल में फ़ॉन्ट की सुविधा के साथ काम करती है.

    ध्यान दें: Support Library की मदद से, एक्सएमएल लेआउट में फ़ॉन्ट फ़ैमिली के बारे में बताने के लिए, app नेमस्पेस का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि आपके फ़ॉन्ट लोड हों.

    <?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 का कोई इंस्टेंस और संसाधन आइडेंटिफ़ायर दें.

    Kotlin

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

    Java

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