سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، با سازماندهی و دسترسی به منابع در برنامه نویسی اندروید آشنا خواهید شد.
موارد بسیاری وجود دارد که برای ساختن یک برنامه اندرویدی خوب از آنها استفاده می کنید. شما به غیر از کدگذاری برای برنامه، از منابع مختلف دیگری مانند محتوای استاتیک مانند بیت مپ، رنگ، تعریف چیدمان، رشته های رابط کاربری، دستورالعمل های انیمیشن و غیره استفاده می کنید. این منابع همیشه به طور جداگانه در زیرمجموعه های مختلف تحت res/ directory پروژه نگهداری می شوند.
این آموزش به شما توضیح می دهد که چگونه می توانید منابع برنامه خود را سازماندهی کنید، منابع جایگزین را مشخص کنید و در برنامه های خود به آنها دسترسی پیدا کنید.
سازماندهی منابع در Android Studio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
MyProject/ app/ manifest/ AndroidManifest.xml java/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml |
نوع فهرست و منبع | |
---|---|
1 |
anim/ پرونده های XML که انیمیشن ها را تعریف می کنند. آنها در پوشه res / anim / ذخیره می شوند و از کلاس R.anim به آنها دسترسی پیدا می شود. |
2 |
color/ فایلهای XML که لیستی از رنگها را تعریف می کنند. آنها با res/color/ ذخیره می شوند و از کلاس R.color قابل دسترسی هستند. |
3 |
drawable/ پرونده های تصویری مانند .png ، .jpg ، .gif یا فایل های XML که در نقشه های بیت، لیست های حالت، اشکال، انیمیشن قابل طراحی جمع می شوند. آنها در res / drawable / ذخیره می شوند و از کلاس R.drawable قابل دسترسی هستند. |
4 |
layout/ پرونده های XML که طرح واسط کاربری را تعریف می کنند. آنها در res / layout ذخیره می شوند و از کلاس R.layout قابل دسترسی هستند. |
5 |
menu/ پرونده های XML که منوهای برنامه را تعریف می کنند، مانند منوی گزینه ها، منوی زمینه یا زیر منو. آنها در res / menu / ذخیره می شوند و از کلاس R.menu قابل دسترسی هستند. |
6 |
raw/ پرونده های اختیاری برای ذخیره در فرم خام خود. برای باز کردن چنین پرونده های خام، باید () Resource.openRawResource را با شناسه منبع که R.raw.filename است فراخوانی کرد. |
7 |
values/ پرونده های XML که حاوی مقادیر ساده ای مانند رشته ها، اعداد صحیح و رنگ ها هستند. به عنوان مثال، در اینجا برخی از قراردادهای نام فایل برای منابعی که می توانید در این فهرست ایجاد کنید وجود دارد –
|
8 |
xml/ پرونده های XML اختیاری که در زمان اجرا ()Resources.getXML قابل خواندن هستند. می توانید فایل های مختلف پیکربندی را که در زمان اجرا استفاده می شوند. |
منابع جایگزین در اندروید
برنامه شما باید منابع جایگزینی را برای پشتیبانی از تنظیمات خاص دستگاه فراهم کند. به عنوان مثال، شما باید منابع قابل جایگزینی قابل ترسیم (به عنوان مثال تصاویر) برای وضوح صفحه نمایش مختلف و منابع رشته ای جایگزین برای زبانهای مختلف داشته باشید. هنگام اجرا ، اندروید پیکربندی دستگاه فعلی را شناسایی کرده و منابع مناسب برنامه شما را بارگیری می کند.
برای تعیین گزینه های خاص پیکربندی برای مجموعه ای از منابع ، مراحل زیر را دنبال کنید.
یک دایرکتوری جدید در res / به نام <resources_name> – <config_qualifier> ایجاد کنید. در اینجا منابع نام یکی از منابع ذکر شده در جدول فوق است، مانند طرح بندی، ترسیم و غیره مقدماتی یک پیکربندی منفرد را تعیین می کند که این منابع برای آن استفاده می شود.
منابع جایگزین مربوطه را در این فهرست جدید ذخیره کنید. پرونده های منبع باید دقیقاً مانند پرونده های منبع پیش فرض همانطور که در مثال زیر نشان داده شده است، نامگذاری شوند ، اما این پرونده ها دارای محتوای خاص جایگزین خواهند بود. به عنوان مثال اگرچه نام فایل تصویر یکسان خواهد بود اما برای صفحه نمایش با وضوح بالا، وضوح آن زیاد خواهد بود.
در زیر مثالی آورده شده است که تصاویر را برای صفحه پیش فرض و تصاویر جایگزین را برای صفحه با وضوح بالا مشخص می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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 |
در زیر نمونه دیگری آورده شده است که طرح بندی را برای یک زبان پیش فرض و طرح جایگزین را برای زبان عربی مشخص می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 از کد زیر استفاده خواهید کرد –
1 2 |
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 تعریف زیر را دارد.
1 2 3 4 |
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, World!</string> </resources> |
اکنون می توانید متن را با استفاده از شناسه منبع به صورت زیر بر روی یک شی TextView با ID msg تنظیم کنید.
1 2 |
TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello); |
مثال
res / layout / activity_main.xml را با تعریف زیر در نظر بگیرید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?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 به شرح زیر بارگذاری می کند
1 2 3 4 |
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } |
دسترسی به منابع در XML در اندروید
فایل XML res / values / strings.xml منبع زیر را در نظر بگیرید که شامل یک منبع رنگی و یک منبع رشته ای است –
1 2 3 4 5 |
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <string name="hello">Hello!</string> </resources> |
اکنون می توانید از این منابع در پرونده طرح زیر استفاده کنید تا رنگ متن و رشته متن را به صورت زیر تنظیم کنید –
1 2 3 4 5 6 |
<?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 در برنامه نویسی اندروید
1 |
دیدگاه شما