این صفحه انواع منابع زیر را تعریف می کند که می توانید آنها را خارجی کنید:
- بول
- منبع XML که دارای یک مقدار بولی است.
- رنگ
- منبع XML که دارای یک مقدار رنگ (یک رنگ هگزادسیمال) است.
- بعد
- منبع XML که دارای یک مقدار بعد (با یک واحد اندازه گیری) است.
- شناسه
- منبع XML که یک شناسه منحصر به فرد برای منابع و اجزای برنامه ارائه می کند.
- عدد صحیح
- منبع XML که دارای یک مقدار صحیح است.
- آرایه عدد صحیح
- منبع XML که آرایه ای از اعداد صحیح را فراهم می کند.
- آرایه تایپ شده
- منبع XML که یک
TypedArray
ارائه میکند (که میتوانید از آن برای آرایههای ترسیمی استفاده کنید).
بول
یک مقدار بولی که در XML تعریف شده است.
توجه: bool یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name
، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع bool را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources>
ترکیب کنید.
- محل فایل:
-
res/values/ filename .xml
نام فایل دلخواه است.name
عنصر<bool>
به عنوان شناسه منبع استفاده می شود. - مرجع منبع:
- در جاوا:
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>
کد برنامه زیر، Boolean را بازیابی می کند:
کاتلین
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)جاوا
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);طرح XML زیر از Boolean برای یک ویژگی استفاده می کند:
<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>
به عنوان شناسه منبع استفاده می شود. - مرجع منبع:
- در جاوا:
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. واحدهای اندازه گیری زیر توسط اندروید پشتیبانی می شوند:
-
dp
- پیکسل های مستقل از چگالی: یک واحد انتزاعی که بر اساس چگالی فیزیکی صفحه است. این واحدها نسبت به یک صفحه نمایش 160 dpi (نقطه در اینچ) هستند که در آن 1 dp تقریباً برابر با 1 پیکسل است. هنگام اجرا بر روی صفحه نمایش با تراکم بالاتر، تعداد پیکسل های مورد استفاده برای ترسیم 1 dp با ضریب مناسب برای dpi صفحه نمایش افزایش می یابد.
به همین ترتیب، وقتی روی یک صفحه نمایش با چگالی کمتر، تعداد پیکسل های استفاده شده برای 1 dp کوچک می شود. نسبت dps به پیکسل با تراکم صفحه تغییر می کند، اما نه لزوما به نسبت مستقیم. استفاده از واحدهای dp به جای واحدهای px راه حلی برای تغییر اندازه ابعاد نمای در طرح بندی شما برای تراکم های مختلف صفحه نمایش است. این یکپارچگی برای اندازه های دنیای واقعی عناصر UI شما در دستگاه های مختلف فراهم می کند.
-
sp
- پیکسلهای مستقل از مقیاس - این مانند واحد dp است، اما با توجه به ترجیح اندازه فونت کاربر نیز مقیاسبندی میشود. توصیه می شود هنگام تعیین اندازه فونت از این واحد استفاده کنید، بنابراین آنها برای تراکم صفحه و ترجیح کاربر تنظیم می شوند.
-
pt
- امتیاز: 1/72 اینچ بر اساس اندازه فیزیکی صفحه، با فرض تراکم صفحه نمایش 72 dpi.
-
px
- پیکسل ها: مربوط به پیکسل های واقعی روی صفحه است. استفاده از این واحد را توصیه نمیکنیم، زیرا نمایش واقعی میتواند در دستگاهها متفاوت باشد. دستگاههای مختلف میتوانند تعداد پیکسلهای متفاوتی در هر اینچ داشته باشند و ممکن است تعداد پیکسلهای بیشتری یا کمتری روی صفحه نمایش داشته باشند.
-
mm
- میلی متر: بر اساس اندازه فیزیکی صفحه نمایش.
-
in
- اینچ: بر اساس اندازه فیزیکی صفحه نمایش.
توجه: یک بعد یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name
، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع ابعاد را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources>
ترکیب کنید.
- محل فایل:
-
res/values/ filename .xml
نام فایل دلخواه است.name
عنصر<dimen>
به عنوان شناسه منبع استفاده می شود. - مرجع منبع:
- در جاوا:
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
در طرحبندی UI یا یک عدد صحیح منحصر به فرد برای استفاده در کد برنامه شما، مانند یک شناسه برای یک گفتگو یا یک کد نتیجه.
توجه: شناسه یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name
، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع ID را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources>
ترکیب کنید. همچنین، یک منبع ID به یک آیتم منبع واقعی اشاره نمی کند: یک شناسه منحصر به فرد است که می توانید به منابع دیگر پیوست کنید یا به عنوان یک عدد صحیح منحصر به فرد در برنامه خود استفاده کنید.
- محل فایل:
-
res/values/ filename.xml
نام فایل دلخواه است. - مرجع منبع:
- در جاوا:
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
در اینجا شامل علامت مثبت در مرجع ID نمیشود، زیرا شناسه از قبل وجود دارد، همانطور که در مثالids.xml
قبلی تعریف شد. هنگامی که با استفاده از علامت بعلاوه، با فرمتandroid:id="@+id/name"
برای یک منبع XML یک شناسه مشخص میکنید، به این معنی است که شناسه"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>
به عنوان شناسه منبع استفاده می شود. - مرجع منبع:
- در جاوا:
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>
به عنوان شناسه منبع استفاده می شود. - نوع داده منبع کامپایل شده:
- اشاره گر منبع به آرایه ای از اعداد صحیح.
- مرجع منبع:
- در جاوا:
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
به درستی به دست آورید. روش های get...()
.
توجه: یک آرایه تایپ شده منبع ساده ای است که با استفاده از مقدار ارائه شده در ویژگی name
، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع آرایه تایپ شده را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources>
ترکیب کنید.
- محل فایل:
-
res/values/ filename .xml
نام فایل دلخواه است.name
عنصر<array>
به عنوان شناسه منبع استفاده می شود. - نوع داده منبع کامپایل شده:
- اشاره گر منبع به
TypedArray
. - مرجع منبع:
- در جاوا:
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);