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