مقدمه:

در مقاله سازماندهی و دسترسی به منابع اندروید به شما توضیح می دهیم که چگونه می توانید منابع اپلیکیشن خود را سازماندهی کنید، منابع جایگزین را مشخص کنید و به اپلیکیشن های خود دسترسی داشته باشید.

موارد بسیار زیادی وجود دارد که برای ساخت یک اپلیکیشن خوب اندروید استفاده می کنید. به غیر از برنامه نویسی برای اپلیکیشن، شما منابع مختلف دیگری مانند محتوای استاتیک که کدهایتان استفاده می کنند، مانند تصاویر بیت مپ، رنگ ها، تعاریف طرح، رشته های رابط کاربری، دستورالعمل های انیمیشن و موارد دیگر را به کار می برید. این منابع همیشه در زیر شاخه های مختلف دایرکتوری res/ پرونده پروژه جداگانه نگهداری می شوند.

سازماندهی منابع در اندروید استودیو

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java  
      res/
         drawable/  
            icon.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml
ردیف نوع منبع و دایرکتوری
۱

anim/

فایل های XML که انیمیشن های خاص را تعریف می کنند. آنها در res / anim / folder ذخیره شده و از کلاس R.anim قابل دسترسی هستند.

۲ color/

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

۳ drawable/

فایل های تصویری مانند .png، .jpg، .gif یا فایل های XML که در بیت مپ کامپایل می شوند، لیست های دولتی، اشکال، animation drawable. آنها در res / drawable / ذخیره می شوند و از کلاس R.drawable قابل دسترسی هستند.

۴ layout/

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

۵ menu/

فایل های XML که منوهای برنامه را تعریف می کنند، مانند منوی تنظیمات، منوی زمینه یا منوی زیر. آنها در /res / menu ذخیره می شوند و از کلاس R.menu قابل دسترسی هستند.

۶ raw/

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

۷ values/

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

  • arrays.xml برای آرایه های منابع و دسترسی از کلاس R.array.
  • integers.xml برای عدد صحیح منبع و از کلاس R.integer قابل دسترسی است.
  • bools.xml برای boolean resource و از کلاس R.bool دسترس پذیر است.
  • color.xml برای مقادیر رنگ و از کلاس R.color قابل دسترسی است.
  • dimens.xml برای مقادیر ابعاد و از کلاس R.dimen قابل دسترس است.
  • strings.xml برای مقادیر رشته و از کلاس R.string قابل دسترسی است.
  • styles.xml برای سبک ها و از کلاس R.style قابل دسترسی است.
۸ xml/

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

بیشتر بخوانید:  مقدمه ای بر اندروید

منابع جایگزین

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

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

  • ایجاد یک دایرکتوری جدید در res/ نامگذاری شده در فرم <resources_name>-<config_qualifier> می باشد. در اینجا resource_name هر یک از منابع ذکر شده در جدول فوق، مانند طرح، drawable و غیره خواهد بود. Qualifier یک پیکربندی فردی برای استفاده از این منابع مشخص می کند. شما می توانید مستندات رسمی را برای لیست کامل امتیازدهی برای انواع مختلف منابع بررسی کنید.
  • منابع جایگزین مربوطه را در این دایرکتوری جدید ذخیره کنید. فایل های منبع باید دقیقا همانند فایل های منبع پیش فرض، همچنان که در مثال زیر نشان داده شوند، نامگذاری شوند اما این فایل ها دارای محتوای خاصی برای جایگزین هستند. برای مثال، اگرچه نام فایل تصویر یکسان است اما برای صفحه نمایش با وضوح بالا، رزولوشن آن بالا خواهد بود.

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

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

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

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

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

در طول توسعه برنامه شما نیاز به دسترسی به منابع تعریف شده چه در کد خودتان و یا در فایل های XML تان خواهید داشت. بخش زیر توضیح می دهد که چگونه در هر دو سناریو به منابع تان دسترسی داشته باشید:

بیشتر بخوانید:  معماری اندروید

دسترسی به منابع در کد

هنگامی که اپلیکیشن اندروید تان کامپایل می شود، یک کلاس R ایجاد می شود که دارای شناسه منابع برای همه منابع موجود در res / directory شما است. شما می توانید از کلاس R برای دسترسی به این منابع با استفاده از زیر شاخه و نام منابع یا مستقیما از ID منابع استفاده کنید.

مثال

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

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

در اینجا خط اول کد از R.id.myimageview برای استفاده از ImageView مشخص شده با id myimageview در یک فایل Layout استفاده می کند. خط دوم کد از R.drawable.myimage استفاده می کند تا تصویری با نام myimage در sub-directory قابل دریافت زیر / res در دسترس داشته باشد.

مثال

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

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

حالا شما می توانید متن را در یک آبجکت TextView همراه با msg ID با استفاده از ID منبع به صورت زیر تنظیم کنید:

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

مثال

طرح بندی 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>

این کد اپلیکیشن این طرح بندی را برای یک فعالیت در روش  ()onCreate به صورت زیر بارگذاری می کند:

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

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

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

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

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

<?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 را توضیح دادیم، را مرور کنید، مطمئنا مفاهیم این فصل را بهتر درک خواهید کرد. بنابراین به شدت توصیه می کنیم که فصل قبل را برای کار کردن مثال مرور کنید و چگونگی استفاده از منابع مختلف را در سطح بسیار پایه ای مورد بررسی قرار دهید (رفرنس).

بیشتر بخوانید:  پروژه MIT App Inventor چیست؟

در مقاله سازماندهی و دسترسی به منابع اندروید به بررسی سازماندهی منابع، جایگزین ها و نحوه دسترسی به آنها پرداختیم. در مقاله بعدی به تشریح فعالیت های اندروید خواهیم پرداخت.


سیامک قربانی پور

سیامک قربانی پور هستم؛ مدیر عامل شرکت "آبتین ارتباط ایرانیان"؛ دانش آموخته کارشناسی ارشد مدیریت فناوری اطلاعات. موضوع فعالیت شرکت ما به شماره ثبت 1050، برنامه نویسی، طراحی وبسایت و شبکه های کامپیوتری هست. از سال 94 تا 96 به مدت دو سال مشاور مرکز رشد و کسب و کار پارک علم و فناوری چهارمحال و بختیاری بودم اما الان کسب و کار خودم رو در زمینه برنامه نویسی و طراحی وبسایت دارم. همچنین در زمینه مسائل کسب و کاری به علاقه مندان مشاوره هایی رو ارائه می دهم و مطالبی رو در این زمینه خصوصا در مورد کسب و کارهای حوزه فناوری اطلاعات و ارتباطات در این وبسایت منتشر می کنم.

0 دیدگاه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 + 20 =

تائید دیدگاه فعال است. دیدگاه شما ممکن است کمی طول بکشد تا ظاهر شود.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.