سازماندهی منابع اندروید
موارد بسیار زیادی وجود دارد که شما برای ساخت یک برنامه خوب اندروید باید استفاده کنید. به غیر از برنامه نویسی برای برنامه، شما از منابع مختلف دیگری مانند محتوای ثابت استفاده می کنید نظیر: bitmaps, colors, layout definitions, user interface strings, animation instructions و موارد دیگر. این منابع همیشه در زیر شاخه های مختلف res/ وجود دارند. در آموزش به شما توضیح می دهم که چگونه می توانید سازماندهی منابع اندروید را انجام دهید، و منابع جایگزین را مشخص کرده ، و چگونه به برنامه های خود دسترسی داشته باشید.
سازماندهی منابع اندروید در Android Studio
MyProject/ app/ manifest/ AndroidManifest.xml java/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml
جدول مربوط به سازماندهی منابع اندروید
Directory & Resource |
|
۱ | anim/
فایل های XML که انیمیشن های خاص را تعریف می کنند. آنها در res / anim / folder ذخیره شده و از کلاس 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/
فایل های دلخواه برای ذخیره فرم خام. |
۷ | values/
فایل های XML که حاوی مقادیر ساده ، مانند رشته ها، عدد صحیح و رنگ هستند. به عنوان مثال، در اینجا برخی از توافقنامه های نام فایل برای منابع که می توانید استفاده کنید در این فهرست آورده شده است: · arrays.xml برای نظم منابع، و از کلاس R.array در دسترس است. · integers.xml برای عدد صحیح منابع، و از کلاس R.integer در دسترس است. · colors.xml برای مقادیر رنگ، و از کلاس R.color در دسترس است. · dimens.xml برای مقادیر ابعاد، و از کلاس R.dimen در دسترس است. · strings.xml برای مقادیر رشته، و از کلاس R.string در دسترس است. · styles.xml مربوط به سبک است، و از کلاس R.style در دسترس است. |
۸ | xml/
فایل دلخواه XML که می تواند در زمان اجرا با تماس باResources.getXML () خوانده می شود. شما می توانید فایل های پیکربندی مختلف را در اینجا ذخیره کنید و در زمان اجرا استفاده کنید. |
در جدول سازماندهی منابع اندروید قسمت های مختلفی توضیح داده شده است.
منابع جایگزین
برنامه باید دارای منابع جایگزین برای پشتیبانی از تنظیمات خاص دستگاه باشد. به عنوان مثال، شما باید منابع مجاز متناوبی (i.e.images) را برای وضوح صفحه نمایش های متفاوت استفاده کنید و از منابع رشته جایگزین برای زبان های مختلف استفاده کنید. در زمان اجرا، اندروید پیکربندی دستگاه فعلی را تشخیص می دهد و منابع مناسب را برای برنامه بارگذاری می کند.
برای تعیین گزینه های خاص پیکربندی مجموعه ای از منابع، مراحل زیر را دنبال کنید:
ایجاد یک دایرکتوری جدید در res/named از <resources_name>-<config_qualifier> . در اینجا resource_name هر یک از منابع ذکر شده در جدول فوق می تواند باشد ، مانند layout ، 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 / شما است. شما می توانید برای دسترسی از کلاس R به این منابع با استفاده از زیر شاخه و نام منابع یا مستقیما از ID استفاده کنید.
مثال
برای دسترسی به res/drawable/myimage.png و تنظیم ImageView از کد زیر استفاده کنید.
ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage);
در این مثال خط اول کد با استفاده از R.id.myimageview برای رسیدن ImageView بوسیله شناسه myimageview تعریف شده است. خط دوم کد از R.drawable.myimage استفاده می کند تا به تصویری با نام myimage در drawable sub-directory تحت /res دسترسی داشته باشد.
مثال
در مثال بعدی res/values/strings.xml دارای تعریف زیر است:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, World!</string> </resources>
حالا شما می توانید متن را در یک TextView با شناسه 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>
این کد طرح را برای فعالیت در روش onCreate() به صورت زیر بارگذاری میکند:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
مطلب پیشنهادی: آموزش اندروید – حل مثال ساده Hello World
دسترسی به منابع در 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 را توضیح دادم را بخوانید! من بسیار توصیه می کنم که پست قبل را برای مثال کار کنید و بررسی کنید که چگونه از منابع مختلف در سطح های بسیار اساسی مشود استفاده کرد.
منبع: tutorialspoint