অ্যাপ রিসোর্স, যেমন বিটম্যাপ এবং লেআউট, প্রতিটি মডিউলের res/
ডিরেক্টরির মধ্যে টাইপ-নির্দিষ্ট ডিরেক্টরিতে সংগঠিত হয়। আপনি প্রতিটি ফাইলের বিকল্প সংস্করণ যোগ করতে পারেন যা বিভিন্ন ডিভাইস কনফিগারেশনের জন্য অপ্টিমাইজ করা হয়েছে, যেমন উচ্চ-ঘনত্বের পর্দার জন্য একটি বিটম্যাপের উচ্চ-রেজোলিউশন সংস্করণ।
আপনি যে ধরনের রিসোর্স যোগ করতে চান তার উপর নির্ভর করে Android স্টুডিও আপনাকে বিভিন্ন উপায়ে নতুন রিসোর্স এবং বিকল্প রিসোর্স যোগ করতে সাহায্য করে। এই পৃষ্ঠাটি বর্ণনা করে কিভাবে মৌলিক রিসোর্স ফাইল যোগ করতে হয়, কিভাবে আপনার রিসোর্সের অবস্থান পরিবর্তন করতে হয় এবং কিভাবে রিসোর্স মার্জিং কাজ করে।
কিভাবে নির্দিষ্ট রিসোর্স প্রকার তৈরি করতে হয় সে সম্পর্কে বিস্তারিত জানার জন্য নিম্নলিখিত পৃষ্ঠাগুলি দেখুন:
- লেআউট ফাইল যোগ করতে, লেআউট এডিটর দিয়ে একটি UI তৈরি করুন দেখুন।
- স্ট্রিং ফাইল যোগ করতে, অনুবাদ সম্পাদকের সাথে UI স্থানীয়করণ দেখুন।
- বিটম্যাপ যোগ করতে, ইমেজ অ্যাসেট স্টুডিও দিয়ে অ্যাপ আইকন তৈরি করুন দেখুন।
- SVG ফাইল যোগ করতে, মাল্টি-ডেনসিটি ভেক্টর গ্রাফিক্স যোগ করুন দেখুন।
আপনার অ্যাপ কোড থেকে সংস্থানগুলি কীভাবে উল্লেখ করবেন সে সম্পর্কে তথ্যের জন্য, অ্যাপ সংস্থান ওভারভিউ দেখুন।
একটি XML রিসোর্স ফাইল যোগ করুন
যদিও পূর্ববর্তী পৃষ্ঠার লিঙ্কগুলি প্রতিটি ধরণের সংস্থানের সাথে কাস্টমাইজ করা ওয়ার্কফ্লোগুলি বর্ণনা করে, আপনি এই পদক্ষেপগুলি অনুসরণ করে যে কোনও XML সংস্থান ফাইল যুক্ত করতে পারেন:
অ্যান্ড্রয়েড বা প্রজেক্ট ভিউতে প্রজেক্ট উইন্ডোতে টার্গেট অ্যাপ মডিউলে ক্লিক করুন।
- ফাইল > নতুন > অ্যান্ড্রয়েড রিসোর্স ফাইল নির্বাচন করুন।
চিত্র 1. নতুন রিসোর্স ফাইল ডায়ালগ।
- ডায়ালগে বিস্তারিত পূরণ করুন:
- ফাইলের নাম : XML ফাইলের নাম লিখুন (এর জন্য
.xml
প্রত্যয় প্রয়োজন নেই)। - রিসোর্সের ধরন : আপনি যে ধরনের রিসোর্স তৈরি করতে চান তা নির্বাচন করুন।
- রুট উপাদান : প্রযোজ্য হলে, ফাইলের জন্য রুট XML উপাদান নির্বাচন করুন। কিছু রিসোর্স প্রকার শুধুমাত্র এক ধরনের রুট এলিমেন্ট সমর্থন করে। নির্বাচিত সংস্থান প্রকারের উপর নির্ভর করে, এটি সম্পাদনাযোগ্য নাও হতে পারে।
- সোর্স সেট : সোর্স সেটটি নির্বাচন করুন যেখানে আপনি ফাইলটি সংরক্ষণ করতে চান।
- ডিরেক্টরির নাম : ডিরেক্টরির নাম এমনভাবে রাখতে হবে যা রিসোর্স টাইপ এবং কনফিগারেশন কোয়ালিফায়ারের জন্য নির্দিষ্ট। আপনি ম্যানুয়ালি ডিরেক্টরির নামের সাথে কনফিগারেশন যোগ্যতা যোগ করতে না চাইলে এটি সম্পাদনা করবেন না (পরিবর্তে উপলব্ধ যোগ্যতা ব্যবহার করুন)।
- উপলব্ধ যোগ্যতা : আপনার ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ারগুলি অন্তর্ভুক্ত করার পরিবর্তে, আপনি তালিকা থেকে একটি কোয়ালিফায়ার নির্বাচন করে এবং যোগ করুন ক্লিক করে তাদের যোগ করতে পারেন
.
- ফাইলের নাম : XML ফাইলের নাম লিখুন (এর জন্য
- একবার আপনি আপনার পছন্দের সমস্ত যোগ্যতা যোগ করলে, ঠিক আছে ক্লিক করুন।
টিপ: নতুন রিসোর্স ফাইল ডায়ালগের একটি সরলীকৃত সংস্করণ খুলতে যা আপনি যে রিসোর্স টাইপ যোগ করতে চান তার জন্য নির্দিষ্ট, রেস ফোল্ডারের মধ্যে একটি বিদ্যমান রিসোর্স ডিরেক্টরিতে ডান-ক্লিক করুন এবং নতুন > type-name রিসোর্স ফাইল নির্বাচন করুন।
ইনলাইন জটিল XML সম্পদ
কিছু জটিল সম্পদের জন্য একাধিক XML রিসোর্স ফাইল প্রয়োজন। উদাহরণস্বরূপ, একটি অ্যানিমেটেড ভেক্টর ড্রয়েবল একটি ভেক্টর ড্রয়েবল অবজেক্ট এবং একটি অ্যানিমেশন অবজেক্ট থাকে এবং কমপক্ষে তিনটি XML ফাইল প্রয়োজন।
এই উদাহরণে, আপনি তিনটি পৃথক XML ফাইল তৈরি করতে এবং রাখতে পারেন যদি আপনি তাদের এক বা একাধিক পুনরায় ব্যবহার করতে চান। কিন্তু যদি XML ফাইলগুলি শুধুমাত্র এই অ্যানিমেটেড ভেক্টর ড্রয়েবলের জন্য ব্যবহার করা হয়, তাহলে আপনি পরিবর্তে Android Asset Packaging Tool (AAPT) এ দেওয়া ইনলাইন রিসোর্স ফরম্যাট ব্যবহার করতে পারেন। AAPT এর মাধ্যমে, আপনি একটি XML ফাইলে তিনটি সংস্থান সংজ্ঞায়িত করতে পারেন। আরও তথ্যের জন্য, ইনলাইন জটিল XML সম্পদ দেখুন।
একটি সম্পদ ডিরেক্টরি যোগ করুন
একটি নতুন সংস্থান ডিরেক্টরি যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
প্রজেক্ট উইন্ডোতে টার্গেট অ্যাপ মডিউলে ক্লিক করুন।
- ফাইল > নতুন > অ্যান্ড্রয়েড রিসোর্স ডিরেক্টরি নির্বাচন করুন।
চিত্র 2. নতুন রিসোর্স ডিরেক্টরি ডায়ালগ।
- ডায়ালগে বিস্তারিত পূরণ করুন:
- ডিরেক্টরির নাম : ডিরেক্টরির নাম এমনভাবে রাখতে হবে যা রিসোর্স টাইপ এবং কনফিগারেশন কোয়ালিফায়ারের সংমিশ্রণের জন্য নির্দিষ্ট। আপনি ম্যানুয়ালি ডিরেক্টরির নামের সাথে কনফিগারেশন যোগ্যতা যোগ করতে না চাইলে এটি সম্পাদনা করবেন না (পরিবর্তে উপলব্ধ যোগ্যতা ব্যবহার করুন)।
- রিসোর্স টাইপ: আপনি যে ধরনের রিসোর্স ডিরেক্টরীতে রাখতে চান তা নির্বাচন করুন।
- উৎস সেট: আপনি যেখানে ডিরেক্টরি চান সেই উৎস সেটটি নির্বাচন করুন।
- উপলব্ধ যোগ্যতা: আপনার ডিরেক্টরির নামে ম্যানুয়ালি কনফিগারেশন কোয়ালিফায়ারগুলি অন্তর্ভুক্ত করার পরিবর্তে, আপনি তালিকা থেকে একটি কোয়ালিফায়ার নির্বাচন করে এবং যোগ করুন ক্লিক করে তাদের যোগ করতে পারেন
.
- একবার আপনি আপনার পছন্দের সমস্ত যোগ্যতা যোগ করলে, ঠিক আছে ক্লিক করুন।
আপনার সম্পদ ডিরেক্টরি পরিবর্তন করুন
ডিফল্টরূপে, আপনার সংস্থানগুলি 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") } } }
আরও তথ্যের জন্য, উৎস সেট সম্পর্কে পড়ুন।
সম্পদ একত্রীকরণ
আপনার চূড়ান্ত অ্যাপ ফাইলের সম্পদ তিনটি উৎস থেকে আসতে পারে:
- প্রধান উৎস সেট (সাধারণত
src/main/res/
এ অবস্থিত) - বৈকল্পিক উত্স সেট তৈরি করুন
- অ্যান্ড্রয়েড লাইব্রেরি (AARs)
যখন প্রতিটি উৎস সেট বা লাইব্রেরি থেকে সমস্ত সংস্থান অনন্য হয়, তখন সেগুলি চূড়ান্ত অ্যাপে যোগ করা হয়। একটি রিসোর্স অনন্য বলে বিবেচিত হয় যদি তার ফাইলের নাম তার রিসোর্স টাইপ ডিরেক্টরি এবং রিসোর্স কোয়ালিফায়ার উভয়ের মধ্যেই অনন্য হয় (যদি সংজ্ঞায়িত করা হয়)।
যদি একই রিসোর্সের দুই বা ততোধিক ম্যাচিং সংস্করণ থাকে, তাহলে চূড়ান্ত অ্যাপে শুধুমাত্র একটি সংস্করণ অন্তর্ভুক্ত করা হয়। নিম্নলিখিত অগ্রাধিকার ক্রম (বাম দিকে সর্বোচ্চ অগ্রাধিকার) এর উপর ভিত্তি করে বিল্ড টুলগুলি কোন সংস্করণটি রাখতে হবে তা নির্বাচন করে
বিল্ড ভেরিয়েন্ট > বিল্ড টাইপ > পণ্যের স্বাদ > প্রধান উৎস সেট > লাইব্রেরি নির্ভরতা
উদাহরণস্বরূপ, যদি প্রধান উৎস সেটে থাকে:
-
res/layout/example.xml
-
res/layout-land/example.xml
এবং ডিবাগ বিল্ড টাইপ রয়েছে:
-
res/layout/example.xml
তারপর চূড়ান্ত অ্যাপটিতে ডিবাগ বিল্ড টাইপ থেকে res/layout/example.xml
এবং মূল উৎস সেট থেকে res/layout-land/example.xml
অন্তর্ভুক্ত রয়েছে।
যাইহোক, যদি আপনার বিল্ড কনফিগারেশন একটি প্রদত্ত উত্স সেটের জন্য একাধিক সংস্থান ফোল্ডার নির্দিষ্ট করে এবং সেই উত্সগুলির মধ্যে দ্বন্দ্ব থাকে, একটি ত্রুটি ঘটে এবং মার্জ ব্যর্থ হয় কারণ প্রতিটি সংস্থান ডিরেক্টরিতে একই অগ্রাধিকার রয়েছে৷