با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . تاکنون با چگونگی تعریف عنوان برای resource های برنامه، آشنا شدید. در حال حاضر در این بخش نیز قصد داریم به چگونگی دسترسی به resource ها در Android Studio ، بپردازیم.
هنگامی که یک resource را در برنامه خود تعریف می کنید. می توانید با استفاده از عنوانی که برای آن تعریف کرده اید به راحتی به آن دسترسی داشته باشید. که در ادامه چگونگی انجام دادن اینکار را بیشتر توضیح خواهیم داد.
تمام شناسه های resource های برنامه شما، در کلاس R
پروژه قرار می گیرد. که ابزار AAPT ، آن را بصورت خودکار تولید می کند.
هنگامی که برنامه شما کامپایل می شود، aapt کلاس R را تولید می کند که دارای شناسه منابع برای همه منابع در res / directory شما است.
اجزای شناسه resource، بصورت زیر است:
دو روش برای دسترسی به resource برنامه، وجود دارد:
R
امکان پذیر است.مثال:
1 | R.string.hello |
در مثال فوق، string نوع resource و hello نام resource را نشان می دهد.
در کد XML: که با استفاده از ساختار XML و تعریف نوع و نام resource، می توانید به آن دسترسی داشته باشید.
مثال:
1 | @string/hello |
شما می توانید با استفاده از شناسه resource و متد ()setImageResource
به resource های برنامه دسترسی داشته باشید:
1 2 | ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage); |
همچنین می توانید با استفاده از متد ()getResources
به resource های برنامه دسترسی داشته باشید.
ساختار دسترسی به resource های موجود در برنامه در داخل کد:
1 | [<package_name>.]R.<resource_type>.<resource_name> |
<package_name>
: نام دسته ای است که resource مورد نظر در آنجا قرار دارد.
<resource_type>
: زیر کلاس R است که نوع resource را مشخص می کند.
<resource_name>
: نام فایل resource بدون پسوند است. یا صفت android:name
در عناصر XML است.
سایر روشهای دسترسی به resource در کد برنامه:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // Load a background for the current screen from a drawable resource getWindow().setBackgroundDrawableResource(R.drawable.my_background_image) ; // Set the Activity title by getting a string from the Resources object, because // this method requires a CharSequence rather than a resource ID getWindow().setTitle(getResources().getText(R.string.main_title)); // Load a custom layout for the current screen setContentView(R.layout.main_screen); // Set a slide in animation by getting an Animation from the Resources object mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.hyperspace_in)); // Set the text on a TextView object using a resource ID TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello_message); |
در ادامه چگونگی دسترسی به resource ها ازطریق کدهای XML را بررسی خواهیم کرد.
مثال: اگر شما یک Button را به طراحی برنامه خود اضافه کنید.می توانید از یک resource نوع String برای Text آن، استفاده کنید:
1 2 3 4 | <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/submit" /> |
ساختار فراخوانی resource داخل کد XML:
1 | @[<package_name>:]<resource_type>/<resource_name> |
<package_name>
: نام دسته ای است که resource مورد نظر در آنجا قرار دارد.
<resource_type>
: زیر کلاس R است که نوع resource را مشخص می کند.
<resource_name>
: نام فایل resource بدون پسوند است. یا صفت android:name
در عناصر XML است.
در اینجا به مثالی اشاره خواهیم کرد که از resource های نوع Color و String در کد 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> |
مثال ۲: همچنین می توانید از resource های فوق در فایل طراحی برنامه، برای تعیین متن و رنگ متن، استفاده کنید:
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" /> |
تعریف عنوان برای resource در داخل کد XML:
1 2 3 | <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/other_drawable" /> |
ساختار دسترسی به resource های Style برنامه بصورت زیر است:
1 | ?[<package_name>:][<resource_type>/]<resource_name> |
مثال: چگونگی استفاده از resource برای تنظیم رنگ متن و مطابقت آن با رنگ متن اصلی پوسته سیستم:
1 2 3 4 5 | <EditText id="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="?android:textColorSecondary" android:text="@string/hello_world" /> |
اندروید شامل تعدادی از resource های استاندارد، از جملهstyle ، theme و layout است. برای دسترسی به این منابع باید از نام دسته بندی android استفاده کنید.
برای مثال اندروید resource های طراحی را معرفی می کند که می توانید از آن، در آیتم های لیست خود، در یک ListAdapter استفاده کنید:
1 | setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray)); |
در مثال فوق simple_list_item_1
یک resource طراحی است. که توسط پلتفرم برای آیتم ها در ListView
تعریف می شود.
در آموزش ارائه شده ی فوق، ما مباحث چگونگی دسترسی به resource ها در Android Studio را برای شما شرح دادیم. امیدواریم که از مباحث فوق، بخوبی استفاده کرده باشید.