این صفحه انواع منابع زیر را که میتوانید برونسپاری کنید تعریف میکند:
- Bool
- منبع XML که مقدار بولی دارد.
- رنگ
- منبع XML که مقدار رنگ (رنگ در مبنای شانزده) را حمل میکند.
- بُعد
- منبع XML که مقدار بُعد را (با واحد اندازهگیری) حمل میکند.
- مدرک شناسایی
- منبع XML که شناسه یکتایی برای منابع و مؤلفههای برنامه ارائه میدهد و
- عدد صحیح
- منبع XML که مقدار عدد صحیح دارد.
- آرایه عدد صحیح
- منبع XML که آرایهای از اعداد صحیح ارائه میدهد.
- آرایه تایپشده
- منبع XML که
TypedArrayرا ارائه میدهد (که میتوانید از آن برای آرایهای از موارد قابلترسیم استفاده کنید).
بولی
مقدار بولی تعریفشده در XML.
توجه: bool منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name به آن ارجاع داده میشود، نه نام فایل XML. بهاینترتیب، میتوانید منابع بولی را با منابع ساده دیگر در یک فایل XML،
زیر یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.nameعنصر<bool>بهعنوان شناسه منبع استفاده میشود.- مرجع منبع:
-
در Java:
R.bool.bool_name
در XML:@[package:]bool/bool_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- عناصر:
- مثال:
- فایل XML در
res/values-small/bools.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
کد برنامه زیر مقدار بولی را بازیابی میکند:
کاتلین
val screenIsSmall: Boolean =
resources.getBoolean(R.bool.screen_small)جاوا
Resources res =
getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small);XML چیدمان زیر از مقدار بولی برای یک مشخصه استفاده میکند:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
رنگ
مقدار رنگی که در XML تعریف شده است.
رنگ بااستفاده از مقدار RGB و کانال آلفا مشخص میشود. میتوانید از منبع رنگ
در هر جایی که مقدار رنگ شانزدهشانزدهی را میپذیرد استفاده کنید. همچنین میتوانید از منبع رنگی استفاده کنید وقتی که
منبع ترسیمشدنی در XML انتظار میرود، مثل android:drawable="@color/green".
این مقدار همیشه با نویسه پوند (#) شروع میشود و بهدنبال آن اطلاعات آلفا-قرمز-سبز-آبی در یکی از قالبهای زیر میآید:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
توجه: رنگ منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name ارجاع داده میشود، نه نام فایل XML. بهاینترتیب، میتوانید منابع رنگ را با منابع ساده دیگر در یک فایل XML،
زیر یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/colors.xml
نام فایل اختیاری است.nameعنصر<color>بهعنوان شناسه منبع استفاده میشود.- مرجع منبع:
-
در Java:
R.color.color_name
در XML:@[package:]color/color_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- عناصر:
- مثال:
- فایل XML در
res/values/colors.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
کد برنامه زیر منبع رنگ را بازیابی میکند:
کاتلین
val color: Int =
resources.getColor(R.color.opaque_red)جاوا
Resources res =
getResources(); int color = res.getColor(R.color.opaque_red);XML چیدمان زیر رنگ را به مشخصهای اعمال میکند:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
ابعاد
مقدار بُعدی که در XML تعریف شده است. یک بعد با یک عدد و بهدنبال آن یک واحد اندازهگیری، مانند 10px، 2in، یا 5sp مشخص میشود. Android از واحدهای اندازهگیری زیر پشتیبانی میکند:
dp- پیکسل مستقل از تراکم: واحدی انتزاعی که براساس تراکم فیزیکی صفحهنمایش است. این واحدها نسبتبه صفحهنمایش ۱۶۰ dpi (نقطه در اینچ) هستند که در آن ۱ dp تقریباً برابر با ۱ px است. هنگام اجرا در صفحهنمایش با تراکم بالاتر، تعداد پیکسلهای استفادهشده برای ترسیم ۱ dp با ضریبی مناسب برای dpi صفحهنمایش افزایش مییابد.
بههمین ترتیب، وقتی در صفحهنمایشی با تراکم پایینتر هستید، تعداد پیکسلهای استفادهشده برای ۱ dp کاهش مییابد. نسبت dp به پیکسل با تراکم صفحهنمایش تغییر میکند، اما لزوماً بهطور مستقیم متناسب نیست. استفاده از واحدهای dp بهجای واحدهای px راهحلی است برای اینکه ابعاد نما در چیدمان شما بهدرستی برای تراکمهای مختلف صفحهنمایش تغییر اندازه دهد. این واحد اندازهگیری باعث میشود اندازه عناصر میانای کاربر در دنیای واقعی در دستگاههای مختلف هماهنگ باشد.
sp- پیکسلهای مستقل از مقیاس - این واحد مانند dp است، اما براساس اولویت اندازه قلم کاربر نیز مقیاسبندی میشود. توصیه میشود هنگام مشخص کردن اندازههای قلم از این واحد استفاده کنید تا هم برای تراکم صفحهنمایش و هم برای اولویت کاربر تنظیم شوند.
pt- نقطه: ۱/۷۲ اینچ براساس اندازه فیزیکی صفحهنمایش، با فرض صفحهنمایشی با تراکم ۷۲ نقطه در اینچ.
px- پیکسل: با پیکسلهای واقعی روی صفحهنمایش مطابقت دارد. استفاده از این واحد را توصیه نمیکنیم، زیرا نمایش واقعی میتواند در دستگاههای مختلف متفاوت باشد. دستگاههای مختلف میتوانند تعداد پیکسل در هر اینچ متفاوتی داشته باشند و ممکن است تعداد کل پیکسلهای موجود در صفحهنمایش آنها بیشتر یا کمتر باشد.
mm- میلیمتر: براساس اندازه فیزیکی صفحهنمایش.
in- اینچ: براساس اندازه فیزیکی صفحهنمایش.
توجه: بُعد منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name به آن ارجاع داده میشود، نه نام فایل XML. بهاینترتیب، میتوانید منابع بُعد را با منابع ساده دیگر در یک فایل XML،
زیر یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.nameعنصر<dimen>بهعنوان شناسه منبع استفاده میشود.- مرجع منبع:
-
در Java:
R.dimen.dimension_name
در XML:@[package:]dimen/dimension_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- عناصر:
- مثال:
- فایل XML در
res/values/dimens.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources>
کد برنامه زیر بُعدی را بازیابی میکند:
کاتلین
val fontSize: Float =
resources.getDimension(R.dimen.font_size)جاوا
Resources res =
getResources(); float fontSize = res.getDimension(R.dimen.font_size);XML چیدمان زیر ابعاد را به مشخصهها اعمال میکند:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
شناسه
شناسه منبع یکتا که در XML تعریف شده است. بااستفاده از نامی که در عنصر <item>
ارائه میدهید، ابزارهای توسعهدهنده Android یک عدد صحیح یکتا در کلاس R.java پروژه شما ایجاد میکنند که میتوانید از آن بهعنوان
شناسهای برای منابع برنامه، مانند View در چیدمان میانای کاربر،
یا یک عدد صحیح یکتا برای استفاده در کد برنامه، مانند شناسه برای کادر گفتگو یا
کد نتیجه استفاده کنید.
توجه: شناسه منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name ارجاع داده میشود، نه نام فایل XML. بنابراین، میتوانید منابع شناسه را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید. همچنین، منبع شناسه به یک مورد منبع واقعی ارجاع نمیدهد: این یک شناسه یکتا است که میتوانید به منابع دیگر متصل کنید یا بهعنوان یک عدد صحیح یکتا در برنامه خود استفاده کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.- مرجع منبع:
-
در Java:
R.id.name
در XML:@[package:]id/name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- عناصر:
- مثال:
-
فایل XML در
res/values/ids.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
قطعه کد چیدمان زیر از شناسه
"button_ok"برای ابزارهButtonاستفاده میکند:<Button android:id="@id/button_ok" style="@style/button_style" />
مقدار
android:idدر اینجا شامل علامت جمع در مرجع شناسه نیست، زیرا شناسه ازقبل وجود دارد، همانطور که در مثالids.xmlقبلی تعریف شده است. وقتی بااستفاده از علامت جمع، شناسهای را برای منبع XML در قالبandroid:id="@+id/name"مشخص میکنید، به این معنی است که شناسه"name"هنوز وجود ندارد و ایجاد میشود.بهعنوان مثالی دیگر، تکهکد زیر از شناسه
"dialog_exit"بهعنوان شناسه یکتا برای کادر گفتگو استفاده میکند:کاتلین
showDialog(R.id.dialog_exit)جاوا
showDialog(R.id.dialog_exit);در همان برنامه، شناسه
"dialog_exit"هنگام ایجاد کادر گفتگو مقایسه میشود:کاتلین
override fun
onCreateDialog(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }جاوا
protected Dialog
onCreateDialog(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
عدد صحیح
عدد صحیحی که در XML تعریف شده است.
توجه: عدد صحیح منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name ارجاع داده میشود، نه نام فایل XML. بههمین دلیل، میتوانید منابع عدد صحیح را با منابع ساده دیگر در یک فایل XML،
تحت یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.nameعنصر<integer>بهعنوان شناسه منبع استفاده میشود.- مرجع منبع:
-
در Java:
R.integer.integer_name
در XML:@[package:]integer/integer_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- عناصر:
- مثال:
-
فایل XML در
res/values/integers.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
کد برنامه زیر یک عدد صحیح را بازیابی میکند:
کاتلین
val maxSpeed: Int =
resources.getInteger(R.integer.max_speed)جاوا
Resources res =
getResources(); int maxSpeed = res.getInteger(R.integer.max_speed);
آرایه عدد صحیح
آرایهای از اعداد صحیح تعریفشده در XML.
توجه: آرایه عدد صحیح منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name ارجاع داده میشود، نه نام فایل XML. بهاینترتیب، میتوانید منابع آرایه عدد صحیح را با دیگر منابع ساده در یک فایل XML،
زیر یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.nameعنصر<integer-array>بهعنوان شناسه منبع استفاده میشود.- نوع داده منبع کامپایلشده:
- اشارهگر منبع به آرایهای از اعداد صحیح.
- مرجع منبع:
-
در Java:
R.array.integer_array_name
در XML:@[package:]array/integer_array_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- عناصر:
- مثال:
- فایل XML در
res/values/integers.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources>
کد برنامه زیر آرایه عدد صحیح را بازیابی میکند:
کاتلین
val bits: IntArray =
resources.getIntArray(R.array.bits)جاوا
Resources res =
getResources(); int[] bits = res.getIntArray(R.array.bits);
آرایه تایپشده
TypedArray تعریفشده در XML. میتوانید از این برای ایجاد آرایهای از منابع دیگر، مانند منابع قابلرسم، استفاده کنید. آرایه لازم نیست همگن باشد، بنابراین میتوانید آرایهای از انواع منابع مختلط ایجاد کنید، اما
از نوع و مکان دادهها در آرایه آگاه باشید تا بتوانید بهدرستی هر مورد را با روشهای get...() کلاس TypedArray بهدست آورید.
توجه: آرایه تایپشده منبع سادهای است که بااستفاده از مقدار ارائهشده در مشخصه name ارجاع داده میشود، نه نام فایل XML. بهاینترتیب، میتوانید منابع آرایه تایپشده را با منابع ساده دیگر در یک فایل XML،
زیر یک عنصر <resources> ترکیب کنید.
- مکان فایل:
res/values/filename.xml
نام فایل اختیاری است.nameعنصر<array>بهعنوان شناسه منبع استفاده میشود.- نوع داده منبع کامپایلشده:
- اشارهگر منبع به
TypedArray. - مرجع منبع:
-
در Java:
R.array.array_name
در XML:@[package:]array/array_name - نحو:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- عناصر:
- مثال:
- فایل XML در
res/values/arrays.xmlذخیره شد:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
کد برنامه زیر هر آرایه را بازیابی میکند و سپس اولین ورودی را در هر آرایه بهدست میآورد:
کاتلین
val icons: TypedArray =
resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray =resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)جاوا
Resources res =
getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0);