এই পৃষ্ঠায় নিম্নলিখিত ধরনের রিসোর্স সম্পর্কে বলা হয়েছে যেগুলি আপনি এক্সটার্নালাইজ করতে পারবেন:
- Bool
- XML রিসোর্স যাতে বুলিয়ান ভ্যালু থাকে।
- রঙ
- XML রিসোর্স যা রঙের ভ্যালু (হেক্সাডেসিমেল রঙ) বহন করে।
- ডায়মেনশন
- XML রিসোর্স যাতে ডাইমেনশন ভ্যালু (পরিমাপের একক সহ) থাকে।
- ID
- XML রিসোর্স যা অ্যাপ্লিকেশন রিসোর্স এবং কম্পোনেন্টের জন্য একটি অনন্য শনাক্তকারী প্রদান করে এবং
- পূর্ণসংখ্যা
- XML রিসোর্স যাতে পূর্ণ সংখ্যার মান থাকে।
- পূর্ণসংখ্যার অ্যারে
- XML রিসোর্স যা পূর্ণসংখ্যার অ্যারে প্রদান করে।
- টাইপ করা অ্যারে
- XML রিসোর্স যা
TypedArrayপ্রদান করে (যা আপনি ড্রয়েবলের অ্যারের জন্য ব্যবহার করতে পারবেন)।
বুলিয়ান
XML-এ উল্লেখ করা বুলিয়ান ভ্যালু।
মনে রাখবেন: বুল হল একটি সাধারণ রিসোর্স যা name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফার করা হয়, XML ফাইলের নাম নয়। তাই,
আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে বুল রিসোর্স একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<bool>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- রিসোর্স রেফারেন্স:
-
Java-তে:
R.bool.bool_name
XML-এ:@[package:]bool/bool_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- এলিমেন্ট:
- উদাহরণ:
- XML ফাইল
res/values-small/bools.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোড বুলিয়ান ফিরিয়ে আনে:
Kotlin
val screenIsSmall: Boolean =
resources.getBoolean(R.bool.screen_small)জাভা
Resources res =
getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small);নিম্নলিখিত লেআউট XML অ্যাট্রিবিউটের জন্য বুলিয়ান ব্যবহার করে:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
রঙ
XML-এ সংজ্ঞায়িত রঙের ভ্যালু।
RGB ভ্যালু এবং আলফা চ্যানেল ব্যবহার করে রঙ নির্দিষ্ট করা হয়। আপনি হেক্সাডেসিমেল রঙের ভ্যালু গ্রহণ করে এমন যেকোনও জায়গায়
রঙের রিসোর্স ব্যবহার করতে পারবেন। XML-এ ড্রয়েবল রিসোর্স প্রত্যাশিত হলে, আপনি কালার রিসোর্সও ব্যবহার করতে পারেন, যেমন android:drawable="@color/green"।
মানটি সবসময় পাউন্ড (#) অক্ষর দিয়ে শুরু হয়, যার পরে আলফা-লাল-সবুজ-নীল তথ্য নিম্নলিখিত ফর্ম্যাটের একটিতে থাকে:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
মনে রাখবেন: রঙ হল একটি সাধারণ রিসোর্স যা XML ফাইলের নাম নয়, বরং name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফারেন্স করা হয়। তাই,
আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে রঙের রিসোর্স
একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/colors.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<color>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- রিসোর্স রেফারেন্স:
-
Java-তে:
R.color.color_name
XML-এ:@[package:]color/color_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- এলিমেন্ট:
- উদাহরণ:
- XML ফাইল
res/values/colors.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোড কালার রিসোর্স ফিরিয়ে আনে:
Kotlin
val color: Int =
resources.getColor(R.color.opaque_red)জাভা
Resources res =
getResources(); int color = res.getColor(R.color.opaque_red);নিম্নলিখিত লেআউট XML কোনও অ্যাট্রিবিউটে রঙ প্রয়োগ করে:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
আকার
XML-এ উল্লেখ করা ডাইমেনশন ভ্যালু। একটি ডাইমেনশন একটি সংখ্যা এবং তারপরে পরিমাপের একটি একক দিয়ে নির্দিষ্ট করা হয়, যেমন 10px, 2in, বা 5sp। Android-এ নিম্নলিখিত পরিমাপের একক কাজ করে:
dp- Density-independent পিক্সেল: একটি অ্যাবস্ট্রাক্ট ইউনিট যা স্ক্রিনের ফিজিক্যাল ডেনসিটির উপর ভিত্তি করে
তৈরি। এই ইউনিটগুলি ১৬০ ডিপিআই (প্রতি ইঞ্চিতে ডটের সংখ্যা) স্ক্রিনের সাথে সম্পর্কিত, যেখানে ১ ডিপি মোটামুটি ১ পিক্সেলের
সমান। হাই-ডেনসিটি স্ক্রিনে চালানোর সময়, ১ ডিপি আঁকার জন্য ব্যবহৃত পিক্সেলের সংখ্যা স্ক্রিনের ডিপিআইয়ের জন্য উপযুক্ত ফ্যাক্টর দ্বারা
স্কেল আপ করা হয়।
একইভাবে, কম-ঘনত্বের স্ক্রিনে, ১ ডিপি-র জন্য ব্যবহৃত পিক্সেলের সংখ্যা কমিয়ে আনা হয়। স্ক্রিনের ঘনত্বের সাথে ডিপি ও পিক্সেলের অনুপাত পরিবর্তিত হয়, তবে সরাসরি অনুপাতে নাও হতে পারে। px ইউনিটের পরিবর্তে dp ইউনিট ব্যবহার করলে, আপনার লেআউটের ভিউ ডাইমেনশন বিভিন্ন স্ক্রিন ডেনসিটির জন্য সঠিকভাবে ছোট বড় করা যায়। এটি বিভিন্ন ডিভাইস জুড়ে আপনার UI এলিমেন্টের বাস্তব-জগতের আকারের জন্য সামঞ্জস্য প্রদান করে।
sp- স্কেল-ইন্ডিপেন্ডেন্ট পিক্সেল - এটি dp ইউনিটের মতো, তবে এটি ব্যবহারকারীর ফন্ট সাইজ পছন্দ অনুযায়ী স্কেল করা হয়। ফন্টের সাইজ নির্দিষ্ট করার সময় এই ইউনিট ব্যবহার করার সাজেশন দেওয়া হয়, যাতে স্ক্রিনের ঘনত্ব ও ব্যবহারকারীর পছন্দ, উভয় অনুযায়ী তা অ্যাডজাস্ট করা যায়।
pt- পয়েন্ট: স্ক্রিনের ফিজিক্যাল সাইজের উপর ভিত্তি করে এক ইঞ্চির ১/৭২ অংশ, ৭২ dpi ডেনসিটি স্ক্রিন ধরে নিয়ে।
px- পিক্সেল: স্ক্রিনে দেখানো আসল পিক্সেলের সাথে সম্পর্কিত। আমরা এই ইউনিট ব্যবহার করার সাজেশন দিই না, কারণ বিভিন্ন ডিভাইসে প্রকৃত উপস্থাপনা আলাদা হতে পারে। বিভিন্ন ডিভাইসে প্রতি ইঞ্চিতে পিক্সেলের সংখ্যা আলাদা হতে পারে এবং স্ক্রিনে উপলভ্য মোট পিক্সেল বেশি বা কম হতে পারে।
mm- মিলিমিটার: স্ক্রিনের আসল সাইজের উপর ভিত্তি করে।
in- ইঞ্চি: স্ক্রিনের আসল সাইজের উপর ভিত্তি করে।
মনে রাখবেন: ডাইমেনশন হল একটি সাধারণ রিসোর্স যা name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফার করা হয়, XML ফাইলের নাম নয়। তাই, আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে ডাইমেনশন রিসোর্স একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<dimen>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- রিসোর্স রেফারেন্স:
-
Java-তে:
R.dimen.dimension_name
XML-এ:@[package:]dimen/dimension_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- এলিমেন্ট:
- উদাহরণ:
- XML ফাইল
res/values/dimens.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোড একটি ডাইমেনশন ফিরিয়ে আনে:
Kotlin
val fontSize: Float =
resources.getDimension(R.dimen.font_size)জাভা
Resources res =
getResources(); float fontSize = res.getDimension(R.dimen.font_size);নিম্নলিখিত লেআউট XML অ্যাট্রিবিউটে ডাইমেনশন প্রয়োগ করে:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
আইডি
XML-এ সংজ্ঞায়িত অনন্য রিসোর্স আইডি। <item>
এলিমেন্টে আপনার দেওয়া নাম ব্যবহার করে, Android ডেভেলপার টুল আপনার প্রোজেক্টের R.java ক্লাসে একটি অনন্য ইন্টিজার তৈরি করে, যা আপনি
অ্যাপ্লিকেশন রিসোর্সের শনাক্তকারী হিসেবে ব্যবহার করতে পারেন, যেমন আপনার UI লেআউটে View,
অথবা আপনার অ্যাপ্লিকেশন কোডে ব্যবহারের জন্য একটি অনন্য ইন্টিজার, যেমন কোনও ডায়ালগের আইডি বা
ফলাফল কোড।
মনে রাখবেন: ID হল একটি সাধারণ রিসোর্স যা XML ফাইলের নাম নয়, বরং name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফার করা হয়। সেই কারণে, আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে আইডি রিসোর্স একত্রিত করতে পারেন। এছাড়াও, একটি আইডি রিসোর্স কোনও প্রকৃত রিসোর্স আইটেমকে রেফারেন্স করে না: এটি একটি অনন্য আইডি যা আপনি অন্যান্য রিসোর্সের সাথে অ্যাটাচ করতে পারেন বা আপনার অ্যাপ্লিকেশনে একটি অনন্য পূর্ণসংখ্যা হিসাবে ব্যবহার করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।- রিসোর্স রেফারেন্স:
-
Java-তে:
R.id.name
XML-এ:@[package:]id/name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- এলিমেন্ট:
- উদাহরণ:
-
XML ফাইল
res/values/ids.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
নিম্নলিখিত লেআউট স্নিপেট
Buttonউইজেটের জন্য"button_ok"আইডি ব্যবহার করে:<Button android:id="@id/button_ok" style="@style/button_style" />
এখানে
android:idভ্যালুতে আইডি রেফারেন্সে প্লাস চিহ্ন অন্তর্ভুক্ত নেই, কারণ আইডিটি আগে থেকেই আছে, যেমনটি পূর্ববর্তীids.xmlউদাহরণে উল্লেখ করা হয়েছে। আপনি যখন প্লাস চিহ্ন ব্যবহার করে XML রিসোর্সে ID নির্দিষ্ট করেন,android:id="@+id/name"ফর্ম্যাটে, তার মানে হল"name"ID এখনও নেই এবং এটি তৈরি করা হয়েছে।অন্য একটি উদাহরণ হিসেবে, নিম্নলিখিত কোড স্নিপেটটি একটি ডায়ালগের জন্য অনন্য শনাক্তকারী হিসেবে
"dialog_exit"আইডি ব্যবহার করে:Kotlin
showDialog(R.id.dialog_exit)জাভা
showDialog(R.id.dialog_exit);একই অ্যাপ্লিকেশনে, ডায়ালগ তৈরি করার সময়
"dialog_exit"আইডি তুলনা করা হয়:Kotlin
override fun
onCreateDialog(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }জাভা
protected Dialog
onCreateDialog(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
পূর্ণসংখ্যা
XML-এ উল্লেখ করা একটি পূর্ণসংখ্যা।
মনে রাখবেন: পূর্ণসংখ্যা হল একটি সাধারণ রিসোর্স যা XML ফাইলের নাম নয়, বরং name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফারেন্স করা হয়। তাই,
আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে ইন্টিজার রিসোর্স একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<integer>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- রিসোর্স রেফারেন্স:
-
Java-তে:
R.integer.integer_name
XML-এ:@[package:]integer/integer_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- এলিমেন্ট:
- উদাহরণ:
-
XML ফাইল
res/values/integers.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোড একটি পূর্ণসংখ্যা ফিরিয়ে আনে:
Kotlin
val maxSpeed: Int =
resources.getInteger(R.integer.max_speed)জাভা
Resources res =
getResources(); int maxSpeed = res.getInteger(R.integer.max_speed);
পূর্ণসংখ্যার অ্যারে
XML-এ সংজ্ঞায়িত পূর্ণসংখ্যার অ্যারে।
মনে রাখবেন: পূর্ণসংখ্যার অ্যারে হল একটি সাধারণ রিসোর্স যা name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফার করা হয়, XML ফাইলের নাম ব্যবহার করে নয়। তাই,
আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে, অন্যান্য সাধারণ রিসোর্সের সাথে পূর্ণসংখ্যা অ্যারে রিসোর্স একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<integer-array>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- কম্পাইল করা রিসোর্স ডেটাটাইপ:
- পূর্ণসংখ্যার অ্যারেতে রিসোর্স পয়েন্টার।
- রিসোর্স রেফারেন্স:
-
Java-তে:
R.array.integer_array_name
XML-এ:@[package:]array/integer_array_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- এলিমেন্ট:
- উদাহরণ:
- XML ফাইল
res/values/integers.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোডটি পূর্ণসংখ্যার অ্যারে ফিরিয়ে আনে:
Kotlin
val bits: IntArray =
resources.getIntArray(R.array.bits)জাভা
Resources res =
getResources(); int[] bits = res.getIntArray(R.array.bits);
টাইপ করা অ্যারে
XML-এ TypedArray নির্দিষ্ট করা আছে। আপনি এটি ব্যবহার করে
অন্যান্য রিসোর্সের অ্যারে তৈরি করতে পারবেন, যেমন ড্রয়েবল। অ্যারে সমজাতীয় হওয়ার প্রয়োজন নেই, তাই আপনি মিশ্র রিসোর্স টাইপের অ্যারে তৈরি করতে পারেন, তবে
অ্যারেতে ডেটা টাইপ কী এবং কোথায় আছে তা জেনে রাখুন যাতে আপনি TypedArray ক্লাসের get...() পদ্ধতির মাধ্যমে
প্রতিটি আইটেম সঠিকভাবে পেতে পারেন।
মনে রাখবেন: টাইপ করা অ্যারে হল একটি সাধারণ রিসোর্স যা XML ফাইলের নাম নয়, বরং name অ্যাট্রিবিউটে দেওয়া ভ্যালু ব্যবহার করে রেফারেন্স করা হয়। তাই,
আপনি একটি XML ফাইলে, একটি <resources> এলিমেন্টের অধীনে,
অন্যান্য সাধারণ রিসোর্সের সাথে টাইপ করা অ্যারে রিসোর্স একত্রিত করতে পারেন।
- ফাইলের লোকেশন:
res/values/filename.xml
ফাইলের নাম ইচ্ছামতো দেওয়া হয়েছে।<array>এলিমেন্টেরnameরিসোর্স আইডি হিসেবে ব্যবহার করা হয়।- কম্পাইল করা রিসোর্স ডেটাটাইপ:
- রিসোর্স পয়েন্টার থেকে
TypedArray। - রিসোর্স রেফারেন্স:
-
Java-তে:
R.array.array_name
XML-এ:@[package:]array/array_name - সিনট্যাক্স:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- এলিমেন্ট:
- উদাহরণ:
- XML ফাইল
res/values/arrays.xml-এ সেভ করা হয়েছে:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
নিম্নলিখিত অ্যাপ্লিকেশন কোড প্রতিটি অ্যারে ফিরিয়ে আনে এবং তারপরে প্রতিটি অ্যারের প্রথম এন্ট্রি পায়:
Kotlin
val icons: TypedArray =
resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray =resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)জাভা
Resources res =
getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0);