অ্যাপ রিসোর্স যোগ করুন

অ্যাপ রিসোর্স, যেমন অ্যাপ আইকন, স্থানীয় ভাষার স্ট্রিং এবং বিটম্যাপ, প্রতিটি মডিউলের res/ ডিরেক্টরির ভিতরে ধরন-নির্দিষ্ট ডিরেক্টরিতে সাজানো থাকে। এছাড়াও আপনি প্রতিটি ফাইলের বিকল্প সংস্করণ যোগ করতে পারেন যা বিভিন্ন ডিভাইস কনফিগারেশনের জন্য অপ্টিমাইজ করা হয়েছে, যেমন উচ্চ-ঘনত্বের স্ক্রিনের জন্য একটি বিটম্যাপের উচ্চ-রেজোলিউশনের সংস্করণ।

আপনি কোন ধরনের রিসোর্স যোগ করতে চান তার উপর নির্ভর করে, অ্যান্ড্রয়েড স্টুডিও আপনাকে বিভিন্ন উপায়ে নতুন এবং বিকল্প রিসোর্স যোগ করতে সাহায্য করে। এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে সাধারণ রিসোর্স ফাইল যোগ করতে হয়, কীভাবে আপনার রিসোর্সগুলোর অবস্থান পরিবর্তন করতে হয় এবং রিসোর্স মার্জিং কীভাবে কাজ করে।

Jetpack Compose-এ, আপনি XML লেআউটের পরিবর্তে Kotlin-এ আপনার UI সংজ্ঞায়িত করেন। তবে, আইকন, ফন্ট এবং অনুবাদের মতো অ্যাপ-স্তরের স্ট্যাটিক অ্যাসেটগুলি সংরক্ষণ করার জন্য আপনি এখনও res/ ডিরেক্টরিটি ব্যবহার করেন। আপনার কম্পোজেবল ফাংশনগুলিতে এই রিসোর্সগুলি কীভাবে অ্যাক্সেস করবেন তা জানতে, “Resources in Compose” দেখুন।

নির্দিষ্ট রিসোর্স টাইপগুলি কীভাবে তৈরি করতে হয় সে সম্পর্কে বিস্তারিত জানতে নিম্নলিখিত পৃষ্ঠাগুলি দেখুন:

আপনার অ্যাপ কোড থেকে রিসোর্সগুলো কীভাবে রেফারেন্স করবেন সে সম্পর্কে জানতে, অ্যাপ রিসোর্স ওভারভিউ দেখুন।

একটি XML রিসোর্স ফাইল যোগ করুন

যদিও পূর্ববর্তী পৃষ্ঠার লিঙ্কগুলিতে প্রতিটি ধরণের রিসোর্সের জন্য বিশেষভাবে তৈরি কর্মপ্রবাহের বর্ণনা দেওয়া হয়েছে, আপনি এই ধাপগুলি অনুসরণ করে যেকোনো XML রিসোর্স ফাইল যোগ করতে পারেন:

  1. অ্যান্ড্রয়েড অথবা প্রজেক্ট ভিউ-এর প্রজেক্ট উইন্ডোতে কাঙ্ক্ষিত অ্যাপ মডিউলটিতে ক্লিক করুন।
  2. ফাইল > নতুন > অ্যান্ড্রয়েড রিসোর্স ফাইল নির্বাচন করুন।

    চিত্র ১. নতুন রিসোর্স ফাইল ডায়ালগ।

  3. ডায়ালগ বক্সে বিস্তারিত তথ্য পূরণ করুন:
    • ফাইলের নাম : XML ফাইলের জন্য একটি নাম লিখুন (এর শেষে .xml সাফিক্স যোগ করার প্রয়োজন নেই)।
    • রিসোর্সের ধরণ : আপনি যে ধরণের রিসোর্স তৈরি করতে চান তা নির্বাচন করুন।
    • রুট এলিমেন্ট : প্রযোজ্য হলে, ফাইলটির জন্য রুট XML এলিমেন্টটি নির্বাচন করুন। কিছু রিসোর্স টাইপ শুধুমাত্র এক ধরনের রুট এলিমেন্ট সমর্থন করে। নির্বাচিত রিসোর্স টাইপের উপর নির্ভর করে, এটি সম্পাদনাযোগ্য নাও হতে পারে।
    • উৎস সেট : ফাইলটি সংরক্ষণের জন্য উৎস সেটটি নির্বাচন করুন।
    • ডিরেক্টরির নাম : ডিরেক্টরিটির নামকরণ অবশ্যই রিসোর্স টাইপ এবং কনফিগারেশন কোয়ালিফায়ার অনুযায়ী নির্দিষ্ট হতে হবে। যদি না আপনি ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ার যোগ করতে চান, তবে এটি সম্পাদনা করবেন না (এর পরিবর্তে 'Available qualifiers ' ব্যবহার করুন)।
    • উপলব্ধ কোয়ালিফায়ার : আপনার ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ার অন্তর্ভুক্ত করার পরিবর্তে, আপনি তালিকা থেকে একটি কোয়ালিফায়ার নির্বাচন করে এবং 'Add' বোতামে ক্লিক করে সেগুলি যোগ করতে পারেন। .
  4. আপনার পছন্দসই সমস্ত কোয়ালিফায়ার যোগ করা হয়ে গেলে, OK-তে ক্লিক করুন।

জটিল XML রিসোর্স ইনলাইন করুন

কিছু জটিল রিসোর্সের জন্য একাধিক XML রিসোর্স ফাইলের প্রয়োজন হয়। উদাহরণস্বরূপ, Compose-এর শক্তিশালী অ্যানিমেশন API থাকলেও, আপনার একটি অ্যানিমেটেড ভেক্টর ড্রয়েবল ব্যবহার করার প্রয়োজন হতে পারে, যেটিতে একটি ভেক্টর ড্রয়েবল অবজেক্ট এবং একটি অ্যানিমেশন অবজেক্ট থাকে এবং যার জন্য কমপক্ষে তিনটি XML ফাইলের প্রয়োজন হয়।

এই উদাহরণে, আপনার যদি এক বা একাধিক ফাইল পুনরায় ব্যবহার করার প্রয়োজন হয়, তবে আপনি তিনটি আলাদা XML ফাইল তৈরি করে রাখতে পারেন। কিন্তু যদি XML ফাইলগুলি শুধুমাত্র এই অ্যানিমেটেড ভেক্টর ড্রয়েবলের জন্য ব্যবহৃত হয়, তবে আপনি এর পরিবর্তে অ্যান্ড্রয়েড অ্যাসেট প্যাকেজিং টুল (AAPT)-এ প্রদত্ত ইনলাইন রিসোর্স ফরম্যাট ব্যবহার করতে পারেন। AAPT-এর মাধ্যমে, আপনি একটি XML ফাইলেই তিনটি রিসোর্স সংজ্ঞায়িত করতে পারেন। আরও তথ্যের জন্য, ইনলাইন জটিল XML রিসোর্স দেখুন।

একটি রিসোর্স ডিরেক্টরি যোগ করুন

একটি নতুন রিসোর্স ডিরেক্টরি যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. প্রজেক্ট উইন্ডোতে কাঙ্ক্ষিত অ্যাপ মডিউলটিতে ক্লিক করুন।
  2. ফাইল > নতুন > অ্যান্ড্রয়েড রিসোর্স ডিরেক্টরি নির্বাচন করুন।

    চিত্র ২. নতুন রিসোর্স ডিরেক্টরি ডায়ালগ।

  3. ডায়ালগ বক্সে বিস্তারিত তথ্য পূরণ করুন:
    • ডিরেক্টরির নাম : ডিরেক্টরিটির নামকরণ অবশ্যই রিসোর্স টাইপ এবং কনফিগারেশন কোয়ালিফায়ারগুলোর সমন্বয়ের জন্য নির্দিষ্ট হতে হবে। যদি না আপনি ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ার যোগ করতে চান, তবে এটি সম্পাদনা করবেন না (এর পরিবর্তে 'Available qualifiers' ব্যবহার করুন)।
    • রিসোর্সের ধরণ: ডিরেক্টরিতে আপনি কোন ধরনের রিসোর্স রাখতে চান তা নির্বাচন করুন।
    • উৎস সেট: সেই উৎস সেটটি নির্বাচন করুন যেখানে আপনি ডিরেক্টরিটি রাখতে চান।
    • উপলব্ধ কোয়ালিফায়ার: আপনার ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ার অন্তর্ভুক্ত করার পরিবর্তে, আপনি তালিকা থেকে একটি কোয়ালিফায়ার নির্বাচন করে এবং 'Add' বোতামে ক্লিক করে সেগুলি যোগ করতে পারেন। .
  4. আপনার পছন্দসই সমস্ত কোয়ালিফায়ার যোগ করা হয়ে গেলে, OK-তে ক্লিক করুন।

আপনার রিসোর্স ডিরেক্টরি পরিবর্তন করুন

ডিফল্টরূপে, আপনার রিসোর্সগুলো module-name /src/ source-set-name /res/ অবস্থিত থাকে। উদাহরণস্বরূপ, আপনার মডিউলের প্রধান সোর্স সেটের রিসোর্সগুলো src/main/res/ -এ এবং ডিবাগ সোর্স সেটের রিসোর্সগুলো src/debug/res/ -এ থাকে।

তবে, আপনি sourceSets ব্লকের res.srcDirs প্রপার্টি ব্যবহার করে এই পাথগুলোকে ( build.gradle ফাইলের সাপেক্ষে) অন্য যেকোনো অবস্থানে পরিবর্তন করতে পারেন। উদাহরণস্বরূপ:

গ্রুভি

android {
    sourceSets {
        main {
            res.srcDirs = ['resources/main']
        }
        debug {
            res.srcDirs = ['resources/debug']
        }
    }
}

কোটলিন

android {
    sourceSets {
        getByName("main") {
            res.srcDirs("resources/main")
        }
        getByName("debug") {
            res.srcDirs("resources/debug")
        }
    }
}

আপনি একটি সোর্স সেটের জন্য একাধিক রিসোর্স ডিরেক্টরিও নির্দিষ্ট করতে পারেন, এবং তারপর বিল্ড টুলগুলো সেগুলোকে একত্রিত করে। উদাহরণস্বরূপ:

গ্রুভি

android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

কোটলিন

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

আরও তথ্যের জন্য, উৎস সেট সম্পর্কে পড়ুন।

সম্পদ একত্রীকরণ

আপনার চূড়ান্ত অ্যাপ ফাইলের রিসোর্স তিনটি উৎস থেকে আসতে পারে:

যখন প্রতিটি উৎস সেট বা লাইব্রেরির সমস্ত রিসোর্স অনন্য হয়, তখন সেগুলোকে চূড়ান্ত অ্যাপে যুক্ত করা হয়। একটি রিসোর্সকে অনন্য বলে গণ্য করা হয় যদি তার ফাইলের নামটি তার রিসোর্স টাইপ ডিরেক্টরি এবং রিসোর্স কোয়ালিফায়ার (যদি সংজ্ঞায়িত থাকে) উভয়ের মধ্যেই অনন্য হয়।

যদি একই রিসোর্সের দুই বা ততোধিক অভিন্ন সংস্করণ থাকে, তাহলে চূড়ান্ত অ্যাপে শুধুমাত্র একটি সংস্করণ অন্তর্ভুক্ত করা হয়। বিল্ড টুলগুলো নিম্নলিখিত অগ্রাধিকার ক্রম অনুসারে কোন সংস্করণটি রাখা হবে তা নির্বাচন করে (সর্বোচ্চ অগ্রাধিকার বাম দিকে):

বিল্ড ভ্যারিয়েন্ট > বিল্ড টাইপ > প্রোডাক্ট ফ্লেভার > মূল সোর্স সেট > লাইব্রেরি নির্ভরতা

উদাহরণস্বরূপ, যদি মূল উৎস সেটে থাকে:

  • res/values/strings.xml
  • res/values-es/strings.xml

এবং ডিবাগ বিল্ড টাইপে রয়েছে:

  • res/values/strings.xml

এরপর চূড়ান্ত অ্যাপটিতে ডিবাগ বিল্ড টাইপ থেকে res/values/strings.xml এবং মূল সোর্স সেট থেকে res/values-es/strings.xml অন্তর্ভুক্ত করা হয়।

তবে, যদি আপনার বিল্ড কনফিগারেশনে একটি নির্দিষ্ট সোর্স সেটের জন্য একাধিক রিসোর্স ফোল্ডার উল্লেখ করা থাকে এবং সেই সোর্সগুলোর মধ্যে দ্বন্দ্ব থাকে, তাহলে একটি ত্রুটি দেখা দেয় এবং মার্জ ব্যর্থ হয়, কারণ প্রতিটি রিসোর্স ডিরেক্টরির অগ্রাধিকার একই থাকে।