XML রিসোর্স হিসেবে ফন্ট যোগ করা

'কম্পোজ' ফিচার ব্যবহার করে দেখুন
Jetpack Compose হল Android-এর জন্য সাজেস্ট করা UI টুলকিট। Compose-এ কীভাবে টেক্সট ব্যবহার করতে হয় তা জানুন।

Android 8.0 (API লেভেল ২৬) XML-এ ফন্ট যোগ করে, এটি এমন একটি ফিচার যা আপনাকে রিসোর্স হিসেবে ফন্ট ব্যবহার করতে দেয়। আপনি রিসোর্স হিসেবে ফন্ট বান্ডেল করতে font ফাইলটি res/font/ ফোল্ডারে যোগ করতে পারবেন। এইসব ফন্ট আপনার R ফাইলে কম্পাইল করা হয় এবং Android Studio-তে অটোমেটিক উপলভ্য হয়। আপনি font রিসোর্স টাইপ ব্যবহার করে ফন্ট রিসোর্স অ্যাক্সেস করতে পারবেন। যেমন, ফন্ট রিসোর্স অ্যাক্সেস করতে, @font/myfont বা R.font.myfont ব্যবহার করুন।

Android 4.1 (API লেভেল 16) ও তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসে XML ফিচারে ফন্ট ব্যবহার করতে, Support Library 26.0 ব্যবহার করুন। Support Library ব্যবহার করা সম্পর্কে আরও জানতে, Support Library ব্যবহার করুন বিভাগ দেখুন।

রিসোর্স হিসেবে ফন্ট যোগ করতে, Android Studio-তে নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. res ফোল্ডারে ডানদিকের বোতামে ক্লিক করুন এবং নতুন > Android রিসোর্স ডিরেক্টরি বিকল্পে যান। নতুন রিসোর্স ডাইরেক্টরি উইন্ডো দেখা যাবে।
  2. সম্পদের ধরন তালিকায়, ফন্ট বেছে নিন, তারপর ঠিক আছে বিকল্পে ক্লিক করুন।

    মনে রাখবেন: রিসোর্স ডিরেক্টরির নাম অবশ্যই font হতে হবে।

    ফন্ট রিসোর্স ডিরেক্টরি যোগ করা

    ছবি ১. ফন্ট রিসোর্স ডিরেক্টরি যোগ করা হচ্ছে।

  3. font ফোল্ডারে আপনার ফন্ট ফাইল যোগ করুন।

    নিচে দেখানো ফোল্ডার স্ট্রাকচার থেকে R.font.dancing_script, R.font.lobster এবং R.font.typo_graphica তৈরি হয়।

    রিসোর্স ডিরেক্টরিতে ফন্ট ফাইল যোগ করা

    ছবি ২. res/font ডিরেক্টরিতে ফন্ট ফাইল যোগ করা।

  4. এডিটরে ফাইলের ফন্ট প্রিভিউ করতে, ফন্ট ফাইলে ডবল-ক্লিক করুন। ফন্ট ফাইলের প্রিভিউ দেখা

    ছবি ৩. ফন্ট ফাইলের প্রিভিউ দেখা।

ফন্ট ফ্যামিলি তৈরি করা

ফন্ট ফ্যামিলি হল স্টাইল ও ওজন সংক্রান্ত বিবরণ সহ ফন্ট ফাইলের একটি সেট। Android-এ, আপনি XML রিসোর্স হিসেবে নতুন ফন্ট ফ্যামিলি তৈরি করতে পারেন এবং সেটিকে আলাদা আলাদা রিসোর্স হিসেবে প্রতিটি স্টাইল ও ওয়েট রেফার করার পরিবর্তে একটি ইউনিট হিসেবে অ্যাক্সেস করতে পারেন। এটি করলে, আপনি যে টেক্সট স্টাইল ব্যবহার করছেন তার উপর ভিত্তি করে সিস্টেমকে সঠিক ফন্ট বেছে নিতে দেন।

ফন্ট ফ্যামিলি তৈরি করতে, Android Studio-তে নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. font ফোল্ডারে ডানদিকের বোতামে ক্লিক করে নতুন > ফন্ট রিসোর্স ফাইল বিকল্প বেছে নিন। নতুন রিসোর্স ফাইল উইন্ডো দেখা যাবে।
  2. ফাইলের নাম লিখে ঠিক আছে বিকল্পে ক্লিক করুন। নতুন ফন্ট রিসোর্স 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 লেআউটে ফন্ট ব্যবহার করা

TextView অবজেক্টে বা স্টাইলে fontFamily অ্যাট্রিবিউট ব্যবহার করে আপনার ফন্ট, কোনও একটি ফন্ট ফাইল বা ফন্ট ফ্যামিলি থেকে ফন্ট ব্যবহার করুন।

মনে রাখবেন: আপনি কোনও ফন্ট ফ্যামিলি ব্যবহার করলে, প্রয়োজন মতো TextView অটোমেটিক চালু হয়ে যায় এবং সেই ফ্যামিলির ফন্ট ফাইল ব্যবহার করে।

TextView-তে ফন্ট যোগ করা

TextView-এর জন্য ফন্ট সেট করতে, নিম্নলিখিত বিকল্পগুলির মধ্যে একটি বেছে নিন:

  • লেআউট XML ফাইলে, আপনি যে ফন্ট ফাইল অ্যাক্সেস করতে চান সেটির fontFamily অ্যাট্রিবিউট সেট করুন।
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
  • TextView-এর জন্য ফন্ট সেট করতে প্রপার্টি উইন্ডো খুলুন।
    1. প্রপার্টি উইন্ডো খুলতে একটি ভিউ বেছে নিন।

      মনে রাখবেন: প্রপার্টি উইন্ডো শুধুমাত্র ডিজাইন এডিটর খোলা থাকলেই উপলভ্য হয়। উইন্ডোর সবচেয়ে নিচে থাকা ডিজাইন ট্যাব বেছে নিন।

    2. textAppearance প্রপার্টি বড় করুন এবং তারপরে fontFamily তালিকা থেকে ফন্ট বেছে নিন।
    3. প্রপার্টি থেকে ফন্ট বেছে নেওয়া

      ছবি ৪. প্রপার্টি উইন্ডো থেকে ফন্ট বেছে নেওয়া।

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

    জাভা

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

    সহায়তা লাইব্রেরি ব্যবহার করা

    Support Library 26.0, Android 4.1 (API লেভেল 16) ও এর পরের যেকোনও ভার্সনে চলে এমন ডিভাইসে XML-এ ফন্ট কাজ করে।

    মনে রাখবেন: Support Library-র মাধ্যমে 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-এর একটি ইনস্ট্যান্স ও রিসোর্স আইডেন্টিফায়ার দিন।

    Kotlin

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

    জাভা

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