डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा की मदद से, एपीआई, फ़ॉन्ट के लिए सेवा देने वाले ऐप्लिकेशन से अनुरोध कर सकते हैं. इसके लिए, ऐप्लिकेशन में फ़ाइलें बंडल करने या ऐप्लिकेशन को फ़ॉन्ट डाउनलोड करने की अनुमति देने की ज़रूरत नहीं होती. AndroidX Core लाइब्रेरी की मदद से, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा, Android API के वर्शन 14 और इसके बाद के वर्शन वाले डिवाइसों पर उपलब्ध है.
डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा से ये फ़ायदे मिलते हैं:
इससे ऐप्लिकेशन का साइज़ कम होता है. इसलिए, ऐप्लिकेशन के इंस्टॉल होने की दर बढ़ जाती है.
इससे सिस्टम की परफ़ॉर्मेंस बेहतर होती है, क्योंकि एक से ज़्यादा ऐप्लिकेशन, सेवा देने वाली कंपनी के ज़रिए एक ही फ़ॉन्ट शेयर कर सकते हैं. इससे उपयोगकर्ताओं का मोबाइल डेटा, फ़ोन की मेमोरी, और डिस्क स्पेस बचता है. इस मॉडल में, ज़रूरत पड़ने पर नेटवर्क से फ़ॉन्ट फ़ेच किया जाता है.
डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा के बारे में ज़्यादा जानने के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट
का सैंपल ऐप्लिकेशन देखें.
डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा कैसे काम करती है?
फ़ॉन्ट की सेवा देने वाला ऐप्लिकेशन, फ़ॉन्ट को वापस पाने और उन्हें स्थानीय तौर पर कैश करने वाला ऐप्लिकेशन होता है. इससे दूसरे ऐप्लिकेशन, फ़ॉन्ट के लिए अनुरोध कर सकते हैं और उन्हें शेयर कर सकते हैं. नीचे दी गई इमेज में, इस प्रोसेस के बारे में बताया गया है.
इमेज 1. डाउनलोड किए जा सकने वाले फ़ॉन्ट की प्रोसेस.
बुनियादी बातें
डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा का इस्तेमाल इन तरीकों से किया जा सकता है. इनके बारे में, बाद के सेक्शन में ज़्यादा जानकारी दी गई है:
Android Studio और Google Play services के साथ, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा का इस्तेमाल करना
Android Studio 3.0 या इसके बाद के वर्शन का इस्तेमाल करके, अपने ऐप्लिकेशन को फ़ॉन्ट डाउनलोड करने के लिए सेट किया जा सकता है. डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा का इस्तेमाल शुरू करने के लिए, Google Play services से फ़ॉन्ट की सेवा देने वाली कंपनी का इस्तेमाल किया जा सकता है.
लेआउट एडिटर में, कोई TextView चुनें. इसके बाद, एट्रिब्यूट में जाकर,
fontFamily > ज़्यादा फ़ॉन्ट चुनें.
इमेज 2.लेआउट एडिटर का इस्तेमाल करना.
संसाधन विंडो दिखती है.
सोर्स मेन्यू में, Google Fonts चुनें.
फ़ॉन्ट बॉक्स में, "डाउनलोड किए जा सकने वाले" सेक्शन में जाकर कोई फ़ॉन्ट चुनें.
डाउनलोड किए जा सकने वाला फ़ॉन्ट बनाएं को चुनें. इसके बाद, ठीक है पर क्लिक करें.
इमेज 3.संसाधन विंडो से कोई फ़ॉन्ट चुनना.
Android Studio, आपके ऐप्लिकेशन में फ़ॉन्ट को सही तरीके से रेंडर करने के लिए ज़रूरी एक्सएमएल फ़ाइलें अपने-आप जनरेट करता है.
इमेज 4. फ़ॉन्ट फ़ाइल की झलक देखना.
प्रोग्राम के ज़रिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा का इस्तेमाल करना
FontsContractCompat:
इस क्लास की मदद से, फ़ॉन्ट के अनुरोध के आधार पर नया
Typeface ऑब्जेक्ट बनाया जा सकता है.
आपका ऐप्लिकेशन, FontsContract एपीआई का इस्तेमाल करके, फ़ॉन्ट की सेवा देने वाली कंपनी से फ़ॉन्ट वापस पाता है. हर सेवा देने वाली कंपनी के लिए, Android के वर्शन और क्वेरी लैंग्वेज पर अपनी पाबंदियां होती हैं. Android के वर्शन और क्वेरी फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, सेवा देने वाली कंपनी का दस्तावेज़ देखें.
फ़ॉन्ट डाउनलोड करने के लिए, यह तरीका अपनाएं:
सेवा देने वाली कंपनी से फ़ॉन्ट का अनुरोध करने के लिए, android.graphics.fonts.FontRequest क्लास का इंस्टेंस बनाएं. अनुरोध बनाने के लिए, ये पैरामीटर पास करें:
फ़ॉन्ट की सेवा देने वाली कंपनी का अधिकार.
सेवा देने वाली कंपनी की पहचान की पुष्टि करने के लिए, फ़ॉन्ट की सेवा देने वाली कंपनी का पैकेज.
फ़ॉन्ट के अनुरोध के पूरा होने की जानकारी देने के लिए,
onTypefaceRetrieved()
तरीके को बदलें. वापस पाए गए फ़ॉन्ट को पैरामीटर के तौर पर जोड़ें.
ज़रूरत के हिसाब से फ़ॉन्ट सेट करने के लिए, इस तरीके का इस्तेमाल किया जा सकता है. उदाहरण के लिए, फ़ॉन्ट को
TextView पर सेट किया जा सकता है.
फ़ॉन्ट की सेवा देने वाली कंपनी से फ़ॉन्ट वापस पाने के लिए, FontsContract.requestFont() तरीके को कॉल करें. यह तरीका, कैश में फ़ॉन्ट मौजूद है या नहीं, यह पता लगाने के लिए जांच शुरू करता है. अगर
फ़ॉन्ट स्थानीय तौर पर उपलब्ध नहीं है, तो यह फ़ॉन्ट की सेवा देने वाली कंपनी को कॉल करता है, एसिंक्रोनस तरीके से फ़ॉन्ट
वापस पाता है, और नतीजे को कॉलबैक में पास करता है. ये पैरामीटर पास करें:
android.graphics.fonts.FontRequest क्लास का इंस्टेंस
फ़ॉन्ट के अनुरोध के नतीजे पाने के लिए कॉलबैक
थ्रेड पर फ़ॉन्ट फ़ेच करने के लिए हैंडलर
नीचे दिए गए सैंपल कोड में, डाउनलोड किए जा सकने वाले फ़ॉन्ट की पूरी प्रोसेस के बारे में बताया गया है:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
फ़ॉन्ट की सेवा देने वाली कंपनी से फ़ॉन्ट डाउनलोड करने के तरीके के बारे में ज़्यादा जानने के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट
का सैंपल ऐप्लिकेशन देखें.
AndroidX Core के साथ, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा का इस्तेमाल करना
AndroidX का इस्तेमाल करके फ़ॉन्ट डाउनलोड करने के लिए, androidx.core.provider पैकेज से FontsContractCompat और FontRequest क्लास इंपोर्ट करें. FontsContract और android.graphics.fonts.FontRequest फ़्रेमवर्क क्लास के बजाय, इन क्लास के इंस्टेंस बनाएं.
AndroidX Core डिपेंडेंसी जोड़ना
FontsContractCompat और FontRequest क्लास का इस्तेमाल करने के लिए, आपको अपने डेवलपमेंट एनवायरमेंट में, अपने ऐप्लिकेशन प्रोजेक्ट की क्लासपाथ डिपेंडेंसी में बदलाव करना होगा.
अपने ऐप्लिकेशन प्रोजेक्ट में AndroidX Core जोड़ने के लिए, अपने ऐप्लिकेशन की build.gradle फ़ाइल में यह डिपेंडेंसी जोड़ें:
एक्सएमएल में, डाउनलोड किए जा सकने वाले फ़ॉन्ट को संसाधन के तौर पर इस्तेमाल करना
Android 8.0 (एपीआई लेवल 26) और AndroidX Core, एक्सएमएल लेआउट में कस्टम फ़ॉन्ट को संसाधन के तौर पर एलान करने का तेज़ और ज़्यादा सुविधाजनक तरीका उपलब्ध कराते हैं. इसका मतलब है कि फ़ॉन्ट को ऐसेट के तौर पर बंडल करने की ज़रूरत नहीं है. अपनी पूरी थीम के लिए, कस्टम फ़ॉन्ट तय किया जा सकता है. इससे, अलग-अलग वेट और स्टाइल (जैसे, बोल्ड, मीडियम या लाइट) के लिए, इस्तेमाल करने की सुविधा बेहतर होती है.
res/font फ़ोल्डर में, नई एक्सएमएल फ़ाइल बनाएं.
एक <font-family> रूट एलिमेंट जोड़ें और फ़ॉन्ट से जुड़े एट्रिब्यूट सेट करें. जैसा कि नीचे दी गई सैंपल एक्सएमएल फ़ाइल में दिखाया गया है:
लेआउट एक्सएमएल फ़ाइल में, फ़ाइल को @font/font_file_name के तौर पर रेफ़र करें. प्रोग्राम के ज़रिए फ़ाइल वापस पाने के लिए,
getFont()
तरीके का भी इस्तेमाल किया जा सकता है. जैसे,
getFont(R.font.font_file_name).
मेनिफ़ेस्ट में, फ़ॉन्ट का पहले से एलान करना
लेआउट इन्फ़्लेशन और संसाधन वापस पाना, सिंक्रोनस टास्क हैं. डिफ़ॉल्ट रूप से, फ़ॉन्ट वापस पाने की पहली कोशिश से, फ़ॉन्ट की सेवा देने वाली कंपनी को अनुरोध भेजा जाता है. इसलिए, पहले लेआउट का समय बढ़ जाता है. देरी से बचने के लिए, अपने मेनिफ़ेस्ट में उन फ़ॉन्ट का पहले से एलान किया जा सकता है जिन्हें वापस पाना है.
सिस्टम के, सेवा देने वाली कंपनी से फ़ॉन्ट वापस पाने के बाद, वह तुरंत उपलब्ध हो जाता है. अगर फ़ॉन्ट वापस पाने में उम्मीद से ज़्यादा समय लगता है, तो सिस्टम, फ़ेच करने की प्रोसेस को रोक देता है और डिफ़ॉल्ट फ़ॉन्ट का इस्तेमाल करता है.
मेनिफ़ेस्ट में, फ़ॉन्ट का पहले से एलान करने के लिए, यह तरीका अपनाएं:
res/values/arrays.xml में, संसाधनों का एक अरे बनाएं और उन फ़ॉन्ट का एलान करें जिन्हें आप
पहले से फ़ेच करना चाहते हैं.
अगर फ़ॉन्ट की सेवा देने वाली कंपनी पहले से इंस्टॉल नहीं है या AndroidX Core लाइब्रेरी का इस्तेमाल किया जा रहा है, तो उन सर्टिफ़िकेट का एलान करें जिनसे फ़ॉन्ट की सेवा देने वाली कंपनी पर हस्ताक्षर किए गए हैं. सिस्टम, फ़ॉन्ट की सेवा देने वाली कंपनी की पहचान की पुष्टि करने के लिए, सर्टिफ़िकेट का इस्तेमाल करता है.
सर्टिफ़िकेट जोड़ने के लिए, यह तरीका अपनाएं:
सर्टिफ़िकेट की जानकारी के साथ एक स्ट्रिंग अरे बनाएं. सर्टिफ़िकेट
की जानकारी के बारे में ज़्यादा जानने के लिए, फ़ॉन्ट की सेवा देने वाली कंपनी का दस्तावेज़ देखें.
Compose में, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2026-05-28 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2026-05-28 (UTC) को अपडेट किया गया."],[],[]]