Working with Android App Resources

Android App Resources – जब हम Android Development करते हैं, तब इस बात को समझना काफी जरूरी होता है कि Android Programming में Visual Logics व Program Logics को एक दूसरे से पूरी तरह से अलग रखा जाता है ताकि उस Android App को जरूरत के अनुसार भविष्‍य में ExtendModify करना आसान रहे और इसी वजह से किसी भी Android App से सम्‍बंधित छोटे से छोटे Static Element को किसी न किसी XML File में Resource के रूप में Define किया जाता है और Android App से सम्‍बंधित सभी Resources, Android App की Directory Structure में “/res/” नाम के Folder में Stored रहते हैं। इसलिए आगे बढ़ने से पहले Android System द्वारा Setup किए जाने वाले विभिन्‍न Resouce Types को समझना निश्चित रूप से जरूरी है।

ID Resource

किसी भी Resource को Uniquely Identify करने के लिए हम उसके साथ एक ID Associate करते हैं और हम जो ID Associate करते हैं, उसे अपने Android App के Directory Architecture की “/res/values/” Location पर ids.xml नाम की एक XML File Create करके उसमें Define करते हैं। जब हम कोई नया Android App Create करते हैं, तब अन्‍य XML Resources Files की तरह ids.xml नाम की कोई XML Resource File Automatically Create नहीं होती, इसलिए इस File को हमें स्‍वयं ही Manually Create करना पड़ता है।

इस File को Create करने के लिए हमें Android Studio के File => New => XML => Values XML File नाम के Menu Option को Click करना होता है, जिसके परिणामस्‍वरूप एक New Android Component नाम का Dialog Box Display होता है। इस Dialog Box में अपनी File का नाम ids Specify करके जैसे ही हम Finish Button पर Click करते हैं, “/res/values/” Location पर ids.xml नाम की एक नई XML File Create हो कर Add हो जाती है।

Working with Android App Resources - Android ITeBooks in Hindi

Working with Android App Resources

हम हमारे Android App में जिन भी UI Controls को Uniquely Identify करने के लिए उनके साथ किसी ID को Specify करना चाहते हैं, उन IDs को हम इसी ids.xml File में एक <item> Element के रूप में Define कर देते हैं। इस <item> Element में typename नाम के केवल दो ही Attributes होते हैं, जहां type का मान हमेंशा id होता है और name का मान वह ID होता है, जिसे हम Define करना चाहते हैं। साथ ही इस <item> Element का Root Element हमेंशा <resource> होता है।

उदाहरण के लिए यदि हमें हमारे Android App के किसी Button के लिए btnAdd नाम का ID Set करना है, तो इस ID को ids.xml File में निम्‍नानुसार Specify करना होगा:

File Name: ids.xml

<?xml version="1.0" encoding="utf-8"?>
 <resources>
 <item name="btnAdd" type="id" />
 </resources>

जब हम इस ids.xml File में किसी ID को Define कर देते हैं, तो इस Defined ID को हम अपनी Layout File निम्‍नानुसार Specify कर सकते हैं:

File Name: activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 xmlns:tools="http://schemas.android.com/tools"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 android:padding="@dimen/activity_vertical_margin"
 tools:context=".MainActivity">

<Button
 android:text="@string/btn_add"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:id="@id/btnAdd" />
 </LinearLayout>

जब हम ids.xml File में उपरोक्‍तानुसार <item> Element के माध्‍यम से किसी ID को Define करते हैं, तो Android App के Runtime में R.java नाम की File में वह ID Add हो जाती है और प्रत्‍येक ID के लिए एक Unique Integer Setup हो जाता है, जिसके माध्‍यम से किसी Java File में R.id.name Statement के माध्‍यम से अथवा किसी अन्‍य XML File में @[package:]id/name Statement के माध्‍यम से उस ID से Associated Element को Uniquely Identify करते हुए Access and Manipulate किया जाना सम्‍भव हो जाता है।

ids.xml File में हम जिन IDs को Define करते हैं, यदि हम चाहें तो उन्‍हें किसी XML Layout File में “+” Symbol का उपयोग करते हुए Directly भी Define किया जा सकता है, जैसाकि उपरोक्‍त XML Layout Code में android:id Attribute के माध्‍यय से किया गया है। जैसे:

    android:id=“@+id/activity_main”

इस Code द्वारा भी activity_main नाम का एक ID Create होता है और R.java File में Add हो जाता है।

जब हम “@id/name” Statement Use कर रहे होते हैं, तब Android System को ये Instruction मिलता है कि हम Current Element के साथ name नाम का ID Associate कर रहे हैं, जिसे ids.xml File में <item> Element के माध्‍यम से पहले ही Define किया जा चुका है।

लेकिन जब हम “@+id/name” Statement Use करते, तब Android System को ये Instruction मिलता है कि हम Current Element के साथ name नाम का जो ID Associate करना है, वह ids.xml File में पहले से Defined नहीं है बल्कि Application के Runtime में उसे Dynamically R.java File में Add करके Current Element को Uniquely Identify करने के लिए Setup करना है।

इस तरह से हम चाहे “+” Symbol का प्रयोग करते हुए किसी Element के लिए ID को Define करें अथवा ids.xml File में <item> Element के माध्‍यम से ID को Define करें, दोनों ही तरीकों में R.java File में वह ID Add होता है और उसके साथ एक Unique Integer Setup हो जाता है, जो कि उस Particular Resource को Uniquly Identify व Reference करने का काम करता है, जिसके साथ उसे Specify किया जाता है।

जब हम उपरोक्‍तानुसार Discussed दोनों में से किसी भी एक तरीके के माध्‍यम से कोई ID Define कर देते हैं और फिर उसे किसी Specific Element के साथ Associate कर देते हैं, तो उस Element को किसी Java File में Programmatically Access करने के लिए हमें R.id.name Statement Use करना होता है।

Bool Resource

Android App में किसी Boolean Value को भी एक Constant की तरह ही Represent करना Recommend किया जाता है। इसलिए हमारे Current Android App से सम्‍बंधित जितने भी Boolean मान होते हैं, उन सभी को एक true या false Constant के रूप में Define करने के लिए “/res/values/” Location पर bools.xml नाम की एक XML File Create कर सकते हैं।

ids.xml File की तरह ही ये bools.xml File भी नया Android App Create करते समय Automatically Create नहीं होती, इसलिए इसे भी Android Studio के File => New => XML => Values XML File नाम के Menu Option को Click करके ही Create करना होता है और Create होने वाली XML File में प्रत्‍येक Integer Value के लिए <bool> नाम के Element को निम्‍नानुसार Define करना होता है:

File Name: integers.xml

<?xml version="1.0" encoding="utf-8"?>
 <resources>
 <bool name="screen_small">true</bool>
 <bool name="adjust_view_bounds">true</bool>
 </resources>

सभी अन्‍य Value Resources की तरह ही Android App से सम्‍बंधित सभी ऐसे मान जो कि True/False के रूप में Specify किए जा सकते हैं, को इस bools.xml File में <bool> Element के माध्‍यम से Define कर दिया जाता है और Application के Runtime में ये सभी R.java File में Add हो जाते हैं, जिन्‍हें किसी Java File में Access करने के लिए हम R.bool.bool_name Statement का प्रयोग करते हैं, जहां bool_name वह नाम है, जिसे bools.xml File में <bool> Element के name Attribute में Specify किया गया है। जबकि इसी bool_name Constant को किसी अन्‍य XML File में Access करने के लिए हमें @[package:]bool.bool_name Statement का प्रयोग करना होता है।

Color Resource

Android App में किसी Color Value को भी एक Constant की तरह ही Represent करना Recommend किया जाता है क्‍योंकि सभी Colors को एक Color Code के माध्‍यम से ही Define किया जाता है और एक ही तरीके की ढे़र सारी Constant Values को सामान्‍यत: किसी एक Specific Location पर Static Resource के रूप में Define कर देना उस Resource को Manage व Maintain करना आसान बना देता है।

सामान्‍यत: किसी भी Color को RGB ValueAlpha Channel के रूप में Specify किया जा सकता है और हम किसी भी ऐसे स्‍थान पर किसी Specific Color Resource को Specify कर सकते हैं, जो कि Hexadecimal Format में Specified Value को Accept कर सकता हो। साथ ही जब किसी Drawable Resource को किसी XML File में Specify करना होता है, तब भी हम किसी Color Resource को android:drawable=”@color/red” Format में Specify कर सकते हैं।

Color Value को हमेंशा # Symbol के साथ Specify किया जाता है और उसके बाद Alpha-Red-Green-Blue Color Information को कई तरीकों से Specify किया जा सकता है। जैसे:

  • #RGB – जो कि वास्‍तव में #RRGGBB का ही Short रूप है।
  • #ARGB
  • #RRGGBB
  • #AARRGGBB

हमारे Current Android App से सम्‍बंधित ढेर सारे Color Values हो सकते हैं, जिनका प्रयोग उस Application में किया गया हो, इसलिए सम्‍पूर्ण Android App के दौरान इन सभी Color Codes को एक Specific Name द्वारा Represent करने के लिए उन्‍हें “/res/values/” Location पर Exist colors.xml नाम की XML File में <color> Element के माध्‍यम से सभी Color Codes को एक Unique Name के साथ Define कर देते हैं, ताकि पूरे Android App में जहां कहीं भी जरूरत हो, किसी Specific Color को Specify करने के लिए इन नामों का प्रयोग कर सकें।

File Name: integers.xml

<?xml version="1.0" encoding="utf-8"?>
 <resources>
 <color name="colorPrimary">#3F51B5</color>
 <color name="colorPrimaryDark">#303F9F</color>
 <color name="colorAccent">#FF4081</color>
 <color name="opaque_red">#f00</color>
 <color name="translucent_red">#80ff0000</color>
 </resources>

सभी अन्‍य Value Resources की तरह ही Android App से सम्‍बंधित सभी ऐसे मान जो कि किसी Color Constant को Represent करते हैं, को इस colors.xml File में <color> Element के माध्‍यम से Define कर दिया जाता है और Application के Runtime में ये सभी R.java File में Add हो जाते हैं, जिन्‍हें किसी Java File में Access करने के लिए हम R.color.color_name Statement का प्रयोग करते हैं, जहां color_name वह नाम है, जिसे colors.xml File में <color> Element के name Attribute में Specify किया गया है। जबकि इसी color_name Constant को किसी अन्‍य XML File में Access करने के लिए हमें @[package:]color.color_name Statement का प्रयोग करना होता है।

Buy this eBook to read more about…

  1. Integer and Integer Array Resource
  2. Typed Array Resource
  3. Dimension Measurement Resource
Android UI Design - Building First User Interface
Android Layout - The Fundamental Concepts

Android in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Android in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Android in Hindi | Page: 628 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Download All EBooks

सभी हिन्दी EBooks के DEMO DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।