ডাউনলোডেবল ফন্টস বৈশিষ্ট্যটি API গুলিকে অ্যাপে ফাইল বান্ডেল করার পরিবর্তে বা অ্যাপটিকে ফন্ট ডাউনলোড করার অনুমতি দেওয়ার পরিবর্তে কোনও প্রোভাইডার অ্যাপ্লিকেশন থেকে ফন্ট অনুরোধ করতে দেয়। ডাউনলোডেবল ফন্টগুলি AndroidX কোর লাইব্রেরির মাধ্যমে Android API 14 এবং উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে উপলব্ধ।
ডাউনলোডযোগ্য ফন্টগুলি নিম্নলিখিত সুবিধাগুলি প্রদান করে:
অ্যাপের আকার হ্রাস করে, ফলে অ্যাপ ইনস্টলেশনের সাফল্যের হার বৃদ্ধি পায়।
সামগ্রিক সিস্টেমের স্বাস্থ্য উন্নত করে, কারণ একাধিক অ্যাপ একই ফন্ট একই প্রোভাইডার দিয়ে শেয়ার করতে পারে। এটি ব্যবহারকারীর সেলুলার ডেটা, ফোন মেমোরি এবং ডিস্ক স্পেস সাশ্রয় করে। এই মডেলে, প্রয়োজনে ফন্টটি নেটওয়ার্কের মাধ্যমে আনা হয়।
ফন্ট প্রোভাইডার হলো এমন একটি অ্যাপ্লিকেশন যা ফন্টগুলি পুনরুদ্ধার করে এবং স্থানীয়ভাবে সেগুলি ক্যাশে করে রাখে যাতে অন্যান্য অ্যাপ্লিকেশনগুলি ফন্টের অনুরোধ করতে এবং ভাগ করতে পারে। নিম্নলিখিত চিত্রটি প্রক্রিয়াটি চিত্রিত করে।
চিত্র ১. ডাউনলোডযোগ্য ফন্ট প্রক্রিয়া।
মূল বিষয়গুলি
আপনি ডাউনলোডযোগ্য ফন্ট বৈশিষ্ট্যটি নিম্নলিখিত উপায়ে ব্যবহার করতে পারেন, যা পরবর্তী বিভাগগুলিতে বিস্তারিত আলোচনা করা হয়েছে:
অ্যান্ড্রয়েড স্টুডিও এবং গুগল প্লে পরিষেবাগুলির সাথে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন
আপনি অ্যান্ড্রয়েড স্টুডিও 3.0 বা তার উচ্চতর সংস্করণ ব্যবহার করে আপনার অ্যাপ্লিকেশনটিকে ফন্ট ডাউনলোড করার জন্য সেট করতে পারেন। ডাউনলোডযোগ্য ফন্ট বৈশিষ্ট্যগুলি শুরু করতে, আপনি Google Play পরিষেবাগুলির ফন্ট সরবরাহকারী ব্যবহার করতে পারেন।
লেআউট এডিটরে , একটি TextView নির্বাচন করুন। তারপর, অ্যাট্রিবিউটের অধীনে, fontFamily > More Fonts নির্বাচন করুন। চিত্র ২.লেআউট এডিটর ব্যবহার।রিসোর্স উইন্ডোটি প্রদর্শিত হবে।
সোর্স মেনুতে, গুগল ফন্ট নির্বাচন করুন।
ফন্ট বাক্সে, "ডাউনলোডযোগ্য" এলাকার অধীনে একটি ফন্ট নির্বাচন করুন।
ডাউনলোডযোগ্য ফন্ট তৈরি করুন নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন। চিত্র ৩.রিসোর্স উইন্ডো থেকে একটি ফন্ট নির্বাচন করা।
অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে প্রাসঙ্গিক XML ফাইল তৈরি করে যা আপনার অ্যাপে সঠিকভাবে ফন্ট রেন্ডার করার জন্য প্রয়োজনীয়।
চিত্র ৪। ফন্ট ফাইলের প্রিভিউ দেখা।
প্রোগ্রাম্যাটিকভাবে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন
অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬) থেকে, অ্যান্ড্রয়েডএক্স কোর ডাউনলোডযোগ্য ফন্টের জন্য সম্পূর্ণ সমর্থন প্রদান করে। অ্যান্ড্রয়েডএক্স কোর লাইব্রেরি ব্যবহার সম্পর্কে আরও তথ্যের জন্য, এই পৃষ্ঠায় ডাউনলোডযোগ্য ফন্ট অ্যান্ড্রয়েডএক্স কোর লাইব্রেরি বিভাগটি দেখুন।
ডাউনলোডেবল ফন্ট বৈশিষ্ট্যটি প্রোগ্রাম্যাটিকভাবে ব্যবহার করতে, দুটি মূল ক্লাসের সাথে ইন্টারঅ্যাক্ট করুন:
FontsContractCompat : এই ক্লাসটি আপনাকে ফন্ট অনুরোধের উপর ভিত্তি করে একটি নতুন Typeface অবজেক্ট তৈরি করতে দেয়।
আপনার অ্যাপটি FontsContract API ব্যবহার করে ফন্ট প্রদানকারীর কাছ থেকে ফন্ট পুনরুদ্ধার করে। প্রতিটি প্রদানকারীর তাদের সমর্থিত Android সংস্করণ এবং কোয়েরি ভাষার উপর নিজস্ব বিধিনিষেধ রয়েছে। Android সংস্করণ এবং কোয়েরি ফর্ম্যাট সম্পর্কে আরও তথ্যের জন্য, আপনার প্রদানকারীর ডকুমেন্টেশন দেখুন।
একটি ফন্ট ডাউনলোড করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
সরবরাহকারীর কাছ থেকে ফন্টটি অনুরোধ করার জন্য android.graphics.fonts.FontRequest ক্লাসের একটি উদাহরণ তৈরি করুন। একটি অনুরোধ তৈরি করতে, নিম্নলিখিত পরামিতিগুলি পাস করুন:
ফন্ট প্রদানকারী কর্তৃপক্ষ।
প্রদানকারীর পরিচয় যাচাই করার জন্য ফন্ট প্রদানকারী প্যাকেজ।
ফন্টের স্ট্রিং কোয়েরি। কোয়েরি ফর্ম্যাট সম্পর্কে আরও তথ্যের জন্য, আপনার ফন্ট প্রদানকারীর ডকুমেন্টেশন দেখুন, যেমন Google Fonts ।
সরবরাহকারীর পরিচয় যাচাই করার জন্য সার্টিফিকেটের জন্য হ্যাশের সেটের একটি তালিকা।
onTypefaceRetrieved() পদ্ধতিটি ওভাররাইড করে বোঝান যে ফন্টের অনুরোধ সম্পূর্ণ হয়েছে। প্যারামিটার হিসেবে পুনরুদ্ধার করা ফন্টটি প্রদান করুন। প্রয়োজন অনুসারে ফন্ট সেট করতে আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি একটি TextView এ ফন্ট সেট করতে পারেন।
ফন্ট প্রদানকারীর কাছ থেকে ফন্টটি পুনরুদ্ধার করতে FontsContract.requestFont() পদ্ধতিতে কল করুন। ক্যাশে ফন্টটি বিদ্যমান কিনা তা নির্ধারণের জন্য পদ্ধতিটি একটি পরীক্ষা শুরু করে। যদি ফন্টটি স্থানীয়ভাবে উপলব্ধ না হয়, তবে এটি ফন্ট প্রদানকারীকে কল করে, অ্যাসিঙ্ক্রোনাসভাবে ফন্টটি পুনরুদ্ধার করে এবং ফলাফলটি কলব্যাকে প্রেরণ করে। নিম্নলিখিত পরামিতিগুলি পাস করুন:
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)
জাভা
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);
ফন্ট প্রদানকারী থেকে ফন্ট ডাউনলোড করার পদ্ধতি সম্পর্কে আরও তথ্যের জন্য, DownloadableFonts নমুনা অ্যাপটি দেখুন।
AndroidX Core ব্যবহার করে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন
AndroidX Core, Android API সংস্করণ ১৪ বা তার বেশি চলমান ডিভাইসগুলিতে ডাউনলোডযোগ্য ফন্ট বৈশিষ্ট্যের জন্য সমর্থন প্রদান করে। androidx.core.provider প্যাকেজে FontsContractCompat এবং FontRequest ক্লাস রয়েছে যা ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ ডাউনলোডযোগ্য ফন্ট বৈশিষ্ট্য সমর্থন বাস্তবায়ন করে। AndroidX ক্লাসগুলিতে ফ্রেমওয়ার্ক পদ্ধতির অনুরূপ পদ্ধতি রয়েছে এবং ফন্ট ডাউনলোড করার প্রক্রিয়াটি এই পৃষ্ঠার বিভাগে প্রোগ্রাম্যাটিকভাবে ডাউনলোডযোগ্য ফন্ট ব্যবহার সম্পর্কে বর্ণিত পদ্ধতির অনুরূপ।
AndroidX ব্যবহার করে ফন্ট ডাউনলোড করতে, androidx.core.provider প্যাকেজ থেকে FontsContractCompat এবং FontRequest ক্লাসগুলি আমদানি করুন। FontsContract এবং android.graphics.fonts.FontRequest ফ্রেমওয়ার্ক ক্লাসের পরিবর্তে এই ক্লাসগুলির ইনস্ট্যান্স তৈরি করুন।
AndroidX Core নির্ভরতা যোগ করুন
FontsContractCompat এবং FontRequest ক্লাস ব্যবহার করার জন্য, আপনাকে আপনার ডেভেলপমেন্ট পরিবেশের মধ্যে আপনার অ্যাপ প্রজেক্টের ক্লাসপাথ নির্ভরতা পরিবর্তন করতে হবে।
আপনার অ্যাপ্লিকেশন প্রজেক্টে AndroidX Core যোগ করতে, আপনার অ্যাপের build.gradle ফাইলে নিম্নলিখিত নির্ভরতা যোগ করুন:
XML-এ রিসোর্স হিসেবে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন
Android 8.0 (API level 26) and AndroidX Core offer a faster and more convenient way to declare a custom font as a resource in the XML layout. This means that there is no need to bundle the font as an asset. You can define a custom font for your entire theme, which accelerates usability for multiple weights and styles, such as bold, medium, or light, when provided.
res/font ফোল্ডারে একটি নতুন XML ফাইল তৈরি করুন।
একটি <font-family> রুট এলিমেন্ট যোগ করুন এবং ফন্ট-সম্পর্কিত বৈশিষ্ট্যগুলি সেট করুন, যেমনটি নিম্নলিখিত নমুনা XML ফাইলে দেখানো হয়েছে:
লেআউট XML ফাইলে ফাইলটিকে @font/font_file_name হিসেবে উল্লেখ করুন। আপনি প্রোগ্রাম্যাটিকভাবে ফাইলটি পুনরুদ্ধার করতে getFont() পদ্ধতিও ব্যবহার করতে পারেন, যেমন getFont(R.font.font_file_name) ।
ম্যানিফেস্টে ফন্টগুলি আগে থেকে ঘোষণা করুন
লেআউট ইনফ্লেশন এবং রিসোর্স পুনরুদ্ধার হল সিঙ্ক্রোনাস কাজ। ডিফল্টরূপে, ফন্ট পুনরুদ্ধারের প্রথম প্রচেষ্টা ফন্ট প্রদানকারীর কাছে একটি অনুরোধ ট্রিগার করে এবং এর ফলে প্রথম লেআউটের সময় বৃদ্ধি পায়। বিলম্ব এড়াতে, আপনি আপনার ম্যানিফেস্টে পুনরুদ্ধার করা প্রয়োজন এমন ফন্টগুলি আগে থেকে ঘোষণা করতে পারেন। সিস্টেম প্রদানকারীর কাছ থেকে ফন্ট পুনরুদ্ধার করার পরে, এটি অবিলম্বে উপলব্ধ হয়। যদি ফন্ট পুনরুদ্ধার প্রত্যাশার চেয়ে বেশি সময় নেয়, তাহলে সিস্টেমটি আনার প্রক্রিয়াটি বাতিল করে এবং ডিফল্ট ফন্ট ব্যবহার করে।
ম্যানিফেস্টে ফন্টগুলি আগে থেকে ঘোষণা করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
res/values/arrays.xml এ একটি রিসোর্স অ্যারে তৈরি করুন এবং আপনি যে ফন্টগুলি প্রি-ফেচ করতে চান তা ঘোষণা করুন।
যখন কোনও ফন্ট প্রোভাইডার আগে থেকে ইনস্টল করা না থাকে, অথবা আপনি যদি AndroidX কোর লাইব্রেরি ব্যবহার করেন, তাহলে ফন্ট প্রোভাইডার যে সার্টিফিকেটগুলির সাথে স্বাক্ষরিত তা ঘোষণা করুন। সিস্টেমটি ফন্ট প্রোভাইডারের পরিচয় যাচাই করার জন্য সার্টিফিকেটগুলি ব্যবহার করে।
সার্টিফিকেট যোগ করার জন্য নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
সার্টিফিকেটের বিবরণ সহ একটি স্ট্রিং অ্যারে তৈরি করুন। সার্টিফিকেটের বিবরণ সম্পর্কে আরও তথ্যের জন্য, আপনার ফন্ট প্রদানকারীর ডকুমেন্টেশন দেখুন।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2026-02-03 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-02-03 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[]]