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

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

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

سازماندهی منابع در 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 / colour/ ذخیره می شوند و از کلاس R.color قابل دسترسی هستند.
۳/drawableپرونده های تصویری مانند فایل های .png ، .jpg ، .gif یا XML که در بیت مپ ، لیست های حالت ، اشکال ، انیمیشن قابل جابجایی قرار گرفته اند. آنها در res / drawable/ ذخیره می شوند و از کلاس R.drawable قابل دسترسی هستند.
۴/layoutفایلهای XML که یک طرح رابط کاربر تعریف می کنند. آنها در res/ layout/ ذخیره می شوند و از کلاس R.layout قابل دسترسی هستند.
۵/menuفایلهای XML که منوهای برنامه را تعریف می کنند ، مانند منوی تنظیمات ، فهرست یا زیر فهرست. آنها در res / menu/ ذخیره می شوند و از کلاس R.menu قابل دسترسی هستند.
۶/rawفایل های دلخواه برای ذخیره در شکل خام خود. برای باز کردن اینگونه فایل های خام ، باید ()Source.openRawResource را با شناسه منبع فرا بخوانید، که R.raw.filename است.
۷/valuesفایلهای XML که دارای مقادیر ساده مانند رشته ها ، اعداد صحیح و رنگ ها هستند. به عنوان مثال ، در اینجا چندین قانون نام گذاری فایل برای منابعی که می توانید در دایرکتوری ایجاد کنید، آورده شده است –arrays.xml برای تعریف آرایه ها و از کلاس R.array قابل دسترسی اند.integers.xml برای تعریف اعداد صحیح و از کلاس R.integer قابل دسترسی اند.bools.xml برای تعریف boolean ، و از کلاس R.bool قابل دسترسی اند.colors.xml برای تعریف رنگ و از کلاس R.color قابل دسترسی اند.dimens.xml برای تعریف ابعاد ، و از کلاس R.dimen قابل دسترسی اند.strings.xml برای تعریف رشته و از کلاس R.string قابل دسترسی اند.styles.xml برای تعریف استایل ها ، و از کلاس R.style قابل دسترسی اند.
۸/xmlفایل های XML دلخواه که می توانند در زمان اجرا با مراجعه به ()Resources.getXML فراخوانی شوند. می توانید فایلهای مختلف پیکربندی را که در زمان اجرا استفاده می شوند، در اینجا ذخیره کنید.

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

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

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

  • یک دایرکتوری جدید در res / با نام <resources _name> – <config_qualifier> ایجاد کنید. در اینجا از resource _name یکی از منابع ذکر شده در جدول فوق مانند drawable ، 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

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

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

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

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

هنگامی که برنامه اندروید کامپایل می شود، یک کلاس R تولید می شود که شامل شناسه منبع برای کلیه منابع موجود در res/ می باشد. می توانید با استفاده از کلاس 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>

اکنون می توانید متن را با استفاده از شناسه msg به صورت زیر بر روی یک شیء TextView تنظیم کنید –

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>

این کد برنامه با استفاده از متد onCreate() یک layout برای Activity بارگذاری می کند –

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>

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

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.