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

4 سال پیش

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

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، با سازماندهی و دسترسی به منابع در برنامه نویسی اندروید آشنا خواهید شد.

 

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

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

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

 

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 / ذخیره می شوند و از کلاس R.anim به آنها دسترسی پیدا می شود.

۲

color/

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

۳

drawable/

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

۴

layout/

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

۵

menu/

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

۶

raw/

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

۷

values/

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

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

xml/

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

 

منابع جایگزین در اندروید

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

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

یک دایرکتوری جدید در res / به نام <resources_name> – <config_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 برای دسترسی به این منبع استفاده کنید.

 

مثال

برای دسترسی به 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 در زیر شاخه قابل طراحی under /res دریافت کند.

 

مثال

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

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

 

اکنون می توانید متن را با استفاده از شناسه منبع به صورت زیر بر روی یک شی TextView با ID msg تنظیم کنید.

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>

این کد برنامه طرح را برای یک Activity، در روش ()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" />

 

منبع.

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

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه