مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

جلسه دوم آموزش اندروید - سازماندهی منابع در اندروید استودیو


موارد بسیار زیادی وجود دارد که شما برای ساخت یک برنامه خوب اندروید ، استفاده می کنید. به غیر از برنامه نویسی برای اپلیکیشن ، شما از منابع (resources ) مختلف دیگری همچون محتوای استاتیک نظیر bitmaps ها (که کد شما استفاده می کند) ، رنگ ها ، تعاریف طرح ، رشته های رابط کاربری ، دستور العمل های انیمیشن و غیره استفاده می کنید. این منابع (resources ) به طور جداگانه  همیشه در زیر شاخه های مختلف تحت مجوز res/  نگهداری می شوند.

این آموزش برای شما تشریح خواهد کرد که چگونه می توانید :

  • منابع (resources) برنامه خود را سازماندهی کنید
  • منابع (resources) جایگزین را مشخص کرده
  • چگونه به برنامه های خود دسترسی داشته باشید.

سازماندهی منابع در Android Studio :

شما باید هر نوع منبع (resources) را در یک دایرکتوری فرعی خاص ، از دایرکتوری res/ پروژه­ ی خود قرار دهید. برای مثال، در اینجا یک سلسله مراتبِ فایل برای یک پروژه ساده ارائه شده است. (دایرکتوری res/ شامل همه ­ی منابع موجود در دایرکتوری های فرعی مختلف است. )

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java  
      res/
         drawable/  
            icon.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml 
				


جدول زیر جزئیاتی را در مورد دایرکتوری های منابع پشتیبانی شده در دایرکتوری res/ پروژه ارائه می دهد :

anim/
فایل های XML ای که ویژگی های انیمیشن ها را تعریف می کنند. آن ها در پوشه ­ی res/anim/ ذخیره می شوند و به وسیله­ ی کلاس R.anim مورد دسترسی قرار می گیرند.

color/
فایل های XML ای که لیست وضعیت رنگ ها را تعریف می کند. آن ها در پوشه res/color/ ذخیره می شوند و از طریق کلاس R.color مورد دسترسی قرار می گیرند.
 

drawable/
فایل های تصویری مانند .png،.gif،.jpg یا فایل های XML ای هستند که در بیت مپ ها، لیست های وضعیت (state list)، شکل ها(shapes) و موارد کشیدنی انیمیشن ها (animation drawables) کامپایل می شوند. آن ها در پوشه res/drawable/ ذخیره می شوند و از کلاس R.drawable مورد دسترسی قرار می گیرند.

layout/
فایل های XML ای که یک layout برای واسط کاربری (user interface) را تعریف می کنند. آن ها در پوشه res/layout/ ذخیره می شوند و از طریق کلاس R.layout مورد دسترسی قرار می گیرند.

menu/
فایل های XML ای که منو های اپلیکیشن ها را تعریف می کنند. مانند منوی گزینه ها (Options Menu) یا Context Menu یا Sub Menu (منوی فرعی). آن ها در پوشه res/menu/ ذخیره می شوند و از طریق کلاس R.menu مورد دسترسی قرار می گیرند.

raw/
فایل های اختیاری ای که به شکل خام خود ذخیره می شوند. شما باید Resources.openRawResource() را با شناسه منبع (resource ID) فراخوانی کنید که به صورت R.raw.filename برای باز کردن این فایل های خام است.

values/
فایل های XML ای که شامل مقادیر ساده مانند رشته ها، اعداد صحیح و رنگ ها هستند. برای مثال، در اینجا برخی از قرار داد های نام فایل برای منابعی که شما می توانید در این دایرکتوری ایجاد کنید ارائه شده است :

  • arrays.xml مربوط به منابع آرایه ای (resource arrays) است و دسترسی به آنها از طریق کلاس R.array انجام می شود.
  • integers.xml مربوط به منابع اعداد صحیح (resource integers) است و دسترسی به آنها از طریق کلاس R.integer انجام می شود.
  • bools.xml مربوط به منابع بولین است و دسترسی به آنها از طریق کلاس R.bool انجام می شود.
  • colors.xml مربوط به مقادیر رنگ است و دسترسی به آن از طریق کلاس R. color انجام می شود.
  • dimens.xml مربوط به ابعاد است و دسترسی به آن از طریق کلاس R. dimen انجام می شود.
  • strings.xml مربوط به مقادیر رشته است و دسترسی به آن از طریق کلاس R. string انجام می شود.
  • styles.xml مربوط به استایل دهی (Style) است و دسترسی به آن از طریق کلاس R. style انجام می شود.


xml/
فایل های XML اختیاری ای که می توانند در زمان اجرا با فراخوانی ()Resources.getXML خوانده شوند. شما می توانید فایل های پیکره بندی مختلف را برای استفاده در زمان اجرا، در اینجا ذخیره کنید.

منابع جایگزین (Alternative Resources) :

اپلیکیشن شما باید منابع جایگزینی را برای پشتیبانی از تنظیمات خاص دستگاه فراهم کند.
برای مثال، شما باید منابع کشیدنی جایگزین (یعنی تصاویر) را برای وضوح تصویر های مختلف (رزولوشن های تصویر مختلف) و منابع رشته ای جایگزین را برای زبان های مختلف در نظر بگیرید. در زمان اجرا، اندروید تنظیمات فعلی دستگاه را تشخیص می دهد و منابع مناسب را برای اپلیکیشن شما بارگذاری می کند.

برای تعیین جایگزین هایی با تنظیمات خاص برای مجموعه ای از منابع، مراحل زیر را دنبال کنید.

1) یک دایرکتوری جدید در res/ named به صورت <resources_name>...<config_qualifier> ایجاد کنید. در اینجا resources_name می تواند هر کدام از منابع مطرح شده در جدول بالا مانند layout، drawable و غیره باشد. qualifier (توصیف کننده) یک پیکر بندی منحصر به فرد را مشخص می کند که این منابع در آن استفاده می شوند. شما می توانید اسناد رسمی را برای لیست کاملی از qualifier های (توصیف گرهای) مربوط به انواع مختلف منابع، بررسی کنید.

2) منابع جایگزین مربوط را در این دایرکتوری جدید ذخیره کنید. همان طور که در مثال زیر نشان داده شده است، نام فایل های منابع باید دقیقا همان نام فایل های منبع پیش فرض باشد ولی محتوای این فایل ها وابسته به منبع جایگزین است (یعنی محتوای جایگزین را جای محتوای قبلی می نویسیم) . برای مثال، با وجود اینکه، نام فایل تصویر همان نام قبلی، ولی برای صفحه ای با رزولوشن بالا، رزولوشن تصویر بالا خواهد بود.
 

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml 


 

در ادامه مثال دیگری آمده است که، صفحه بندی (layout) را برای یک زبان پیش فرض و صفحه بندی (layout) جایگزین را برای زبان عربی مشخص می کند.
 

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         layout-ar/
            main.xml
         values/  
            strings.xml 

 

دسترسی به منابع (Accessing Resources) :

شما در طول ساخت اپلیکشن خود نیازمند دسترسی به منابع تعریف شده در کد خود یا در فایل های XML صفحه بندی (layout XML file) خود هستید. بخش زیر شرح می دهد که شما چگونه می توانید به منابع خود در هر دو سناریو دسترسی پیدا کنید.

دسترسی به منابع در کد (Accessing Resources in Code) :


زمانی که اپلیکیشن اندروید شما، کامپایل می شود، یک کلاس R class تولید می شود که شامل شناسه های منابع (resource ID) برای تمام منابع موجود در دایرکتوری res/ شماست. شما می توانید با استفاده از نام دایرکتوری فرعی و منبع و یا شناسه مستقیم منبع (directly resource ID) ، از کلاس R ، برای دسترسی به این منابع استفاده کنید.

برای دسترسی به res/drawable/myimage.png و تنظیم یک ImageView شما از کد زیر استفاده می کنید.

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);


در اینجا اولین خط کد، از R.id.myimageview ، برای گرفتن ImageView تعریف شده با شناسه­ ی myimageview ، در یک فایل Layout  استفاده می کند. دومین خط کد از R.drawable.myimage ، برای گرفتن یک تصویر با نام myimage که در دایرکتوری فرعی drawable، تحت دایرکتوری /res قرار دارد، به کار می رود.

مثال بعدی را در نظر بگیرید که در آن res/values/strings.xml دارای تعریف زیر است :
 

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string  name="hello">Hello, World!</string>
</resources>

اکنون شما می توانید، متن را بر روی یک شی TextView با شناسه ­ی msgID msg ، با استفاده از یک شناسه منبع (resource ID) به صورت زیر تنظیم کنید.
 

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

 

یک layout در res/layout/activity_main.xml را با تعریف زیر در نظر بگیرید :

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />
      
</LinearLayout>

 

این کد اپلیکیشن، این layout را برای یک Activity ، در متد ()onCreate به صورت زیر بارگذاری می کند.

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

دسترسی به منابع در XML :

فایل منبع XML در  res/values/strings.xml که شامل یک منبع رنگ (color resource) و یک منبع رشته (string resource) است.

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

اکنون شما می توانید از این منابع در فایل layout زیر برای تنظیم رنگ متن و رشته­ ی متنی به صورت زیر استفاده کنید :
 

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:textColor="@color/opaque_red"
   android:text="@string/hello" />


 بار دیگر به مقاله ی قبل برگردید که مثال Hello World! را شرح دادیم، قطعا  درک بهتری از تمام مفاهیم شرح داده شده در این مقاله خواهید داشت. بنابراین، به شدت توصیه می کنیم که مقاله قبل را به عنوان مثال عملی بررسی کنید و ببینید که چگونه از منابع مختلف در سطح بسیار ابتدایی استفاده شده است.

فصلِ: 20 , تعداد قسمت ها: 238 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل رایگان مربوط به مفاهیم php و api نویسی …

توضیحات کلی مجموعه: دوره متخصص اندروید کلیک سایت کامل ترین دوره جامع برنامه نویسی اندروید(حتما دمو دوره را ببینید)   چرا دوره متخصص جایگزین دوره صفرتاصد اندروید شد؟ کلیک سایت تصمیم گرفت …
فصلِ: 30 , تعداد قسمت ها: 182 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت اپلیکیشن علی بابا-آموزش کالبک ها-…

دوره "متخصص" جایگزین دوره صفرتاصد اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دوره صفرتاصد شده است؟چرا باید دوره متخص…
فصلِ: 11 , تعداد قسمت ها: 121 , سطح: صفر تا صد

این فصل در یک نگاه:

عملیات شبیه فیلتر-ساخت الرت دیالوگ وچیدمان براساس فروش-مرتب سازی-نحوه خطایابی-استفاده از bottom sheet در اندروید-سبد خری…

آموزش ساخت اپلیکیشن اندروید دیجی کالا  : ساخت برنامه اندروید یکی از پر طرفدارترین آموزش های کلیک سایت می باشد. با توجه به فراگیر شدن سیستم اندروید و آشنایی افراد با این سیستم ، برنامه های ک…
فصلِ: 3 , تعداد قسمت ها: 179 , سطح: صفر تا صد

این فصل در یک نگاه:

در این دوره آموزشی ، برنامه نویسی اندروید و ios را با استفاده از زامارین خواهیم آموخت. همچنین به صورت کاملا پروژه محور ، اپلیکیشن فروشگاهی مشابه دیجی کالا را پیاده سازی خواهیم کرد. در انته…
فصلِ: 2 , تعداد قسمت ها: 58 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: سرفصل های دوره آموزش ساخت اپلیکیشن فیلیمو معرفی اهداف دوره مقدمه و بررسی پیش نیازهای دوره بررسی جزئی و …
فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت api key-آموزش استفاده از GPS گوشی ونمایش مکان شخص برروی نقشه-متصل کردن چند نقطه برروی نقشه با خط-رسم چند ضلعی…

حتما دمو دوره رو ببینید اولین دوره کامل کار با نقشه گوگل ومسیریابی در نقشه گوگل(این اموزش مشابه فارسی ندارد) اموزش کار با نقشه گوگل در برنامه نویسی اندروید یکی از مهم ترین مباحث هست که …
فصلِ: 1 , تعداد قسمت ها: 14 , سطح: صفر تا صد

این فصل در یک نگاه:

ساخت انواع نوتیفیکیشن ها -کار با وب سرویس پوشه-ارسال نوتیفیکیشن با سرویس پوشه-ارسال نوتیفیکیشن با one signal-اموزش کار ب…

با این مجموعه همه چیز در مورد نوتیفیکیشن و فایربیس رو خواهید اموخت یکی از مواردی که در استخدام کاربران در شرکت های برنامه نویسی بسیار موثر هست مبحث کار با firebase هست که ما دراین دوره ام…
فصلِ: 1 , تعداد قسمت ها: 16 , سطح: صفر تا صد

این فصل در یک نگاه:

لیست کردن فایل های صوتی ویدیویی گوشی-طاحی متریال وزیبا-استفاده از تب بندی-حرکت سیک بار همراه با اهنگ وزمان-ست کردن زمان …

توضیحات کلی مجموعه: اموزش ساخت یک موزیک پلیر و ویدیو پلیر ح رفه ای که کاملا کاربردی است و قابلیت نصب روی گوشی های مختلف را دارد از جمله امکانات این اپلیکیشن: لیست کردن فایل های صوتی وید…
فصلِ: 1 , تعداد قسمت ها: 61 , سطح: صفر تا صد

این فصل در یک نگاه:

اموزش ساخت اپلیکیشن کافه بازار-اشتراک گذاری اپلیکیشن-کار با رتروفیت-کاربا ران تیم پرمیشن- کار با فرگمنت ها-کار با sqlite…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دو…
فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد

این فصل در یک نگاه:

پرداخت درون برنامه ای بازار-اموزش فروش سکه-اموزش فروش اشتراک-اموزش فروش نسخه پولی-اموزش چک کردن خرید کردن کاربر-اموزش کا…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 1 , تعداد قسمت ها: 20 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش کامل پیکربندی mvp-اموزش اتصال با سرور با رتروفیت و rxjava-اموزش کار با دیتابیس-آموزش کار با bottom navigation-اموز…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 1 , تعداد قسمت ها: 35 , سطح: متوسط

این فصل در یک نگاه:

این آموزش در یک فصل شامل 35 جلسه آموزش تصویری به همراه سورس کد ارائه شده است.…

سرفصل ها مقدمه و معرفی متد آموزشی بررسی جزئی و خلاصه موارد موردنیاز پیش از آموزش شامل: کار با ویوها،  کار با کتابخانه های مختلف و ... …
فصلِ: 1 , تعداد قسمت ها: 1 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ارسال پیامک با سامانه مدیر پیامک-ارسال کد فعال سازی برنامه با پیامک-اعتبارسنجی کد فعال سازی-ثبت نام در اپلیکیشن با…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 2 , تعداد قسمت ها: 19 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ارسال توکن در اندروید -اموزش امنیت در برنامه نویسی اندروید-اموزش ارسال توکن در هدر در اندروید-اموزش ساخت token -ام…

توضیحات کلی مجموعه: دموی دوره را حتما ببینید دوره امنیت و دیزاین پترن در برنامه نویسی اندروید که شامل دو فصل هست. فصل اول شامل اموزش singletone design patern-builder design patern-command …
فصلِ: 2 , تعداد قسمت ها: 44 , سطح: صفر تا صد

این فصل در یک نگاه:

در فصل دوم این دوره بیشتر میپردازیم به کار با کتابخانه ها و موارد پیشرفته تر مانند دوربین ، ضبط صدا، دیتا بیس ، و .....…

توضیحات کلی مجموعه: سلام خدمت کلیک سایتی های عزیز مجموعه آموزشی صفر تا صد برنامه نویسی اندروید در محیط بیسیک 4 اندروید (basic 4 android) معرفی محیط بیسیک 4 اندروید محیط b4a  تحت کمپانی A…
فصلِ: 3 , تعداد قسمت ها: 61 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل جدید و اپدیت های جدید-آموزش کار با برودکست ریسیور در کاتلین-آموزش چک کردن اتصال به اینترنت در کاتلین-اموزش اپلود کرد…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 5 , تعداد قسمت ها: 21 , سطح: متوسط

این فصل در یک نگاه:

نحوه ارورگیری-رفع ایراد-رفع مشکل-اشتراک گذاری مطالب-ساخت اکتیویتی تنظیمات-اشتراک گذاری مطالب-جستجو کردن…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 5 , تعداد قسمت ها: 128 , سطح: صفر تا صد

این فصل در یک نگاه:

پرداخت درون برنامه ای بازار با کاتلین…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 8 , تعداد قسمت ها: 62 , سطح: صفر تا صد

این فصل در یک نگاه:

اپلود تصاویر روی سرور نود جی اس-کار با کانال در چت- ساخت کانال-ساخت گروه-تفاوت کانال و گروه-انلاین بودن-ارسال تصاویر در …

  توضیحات کلی مجموعه آموزش اندروید اپلیکیشن چت مشابه تلگرام( با استفاده از Socket IO ): دموی مجموعه را حتما ببینید دراین دوره سعی میشود بسیاری از اپشن هایی که اپلیکیشن موبوگرام داراست ر…
فصلِ: 6 , تعداد قسمت ها: 194 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل آپدیت های مربوط به دوره را قرار میدهیم…

با سلام و خسته نباشد خدمت کلیک سایتی های عزیز در ادامه با توضیحات مختصری درمورد دوره ی react native با ما همراه باشید: React Native چیست؟ قطعا یکی از آرزوهای برنامه نویسان این میباشد که ب…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید