تحدِّد هذه الصفحة الأنواع التالية من الموارد التي يمكنك الاستعانة بها خارجيًا:
- قيمة منطقية
- مورد XML الذي يشتمل على قيمة منطقية.
- اللون
- مورد XML يحمل قيمة لون (لون سداسي عشري).
- السمة
- مورد XML يحمل قيمة سمة (بوحدة قياس).
- الإندونيسية
- مورد XML الذي يوفر معرّفًا فريدًا لموارد التطبيق والمكونات.
- عدد صحيح
- مورد XML الذي يشتمل على قيمة عدد صحيح
- مصفوفة عدد صحيح
- مورد XML يضم صفيفًا من الأعداد الصحيحة.
- مصفوفة تمت كتابتها
- مورد XML يوفّر
TypedArray
(يمكنك استخدامه بالنسبة إلى مصفوفة من العناصر القابلة للرسم).
منطقية
قيمة منطقية محدّدة في XML.
ملاحظة: القيمة المنطقية هي مورد بسيط تتم الإشارة إليه
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك دمج موارد منطقية مع موارد بسيطة أخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يُرجع رمز التطبيق التالي القيمة المنطقية:
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
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" />
res/values/filename.xml
اللون
قيمة لون يتم تحديدها في XML.
ويتم تحديد اللون باستخدام قيمة نموذج أحمر أخضر أزرق وقناة ألفا. يمكنك استخدام مورد الألوان
أي مكان يقبل قيمة لون سداسية عشرية. يمكنك أيضًا استخدام مورد ألوان عند
من المتوقع أن يتم عرض مورد قابل للرسم بتنسيق XML، مثل android:drawable="@color/green"
.
تبدأ القيمة دائمًا بالجنيه (#) حرف (#)، متبوعًا معلومات ألفا-الأحمر-الأخضر-الأزرق بأحد التنسيقات التالية:
- #نموذج أحمر أخضر أزرق
- #ARGB
- #RRGGBB
- #AARRGGBB
ملاحظة: اللون هو مورد بسيط تتم الإشارة إليه
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك الجمع بين موارد الألوان والموارد البسيطة الأخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يُسترد رمز التطبيق التالي مورد الألوان:
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
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"/>
res/values/colors.xml
البُعد
قيمة سمة محدّدة في ملف XML سمة يتم تحديدها برقم يليه وحدة قياس، مثل 10 بكسل أو 2 بوصة أو 5sp. يتيح Android استخدام وحدات القياس التالية:
dp
- وحدات البكسل غير المرتبطة بالكثافة: وحدة مجردة تستند إلى الكثافة الفيزيائية
الشاشة. وتكون هذه الوحدات نسبية إلى شاشة مقاسها 160 نقطة لكل بوصة، والتي تساوي فيها نسبة 1 dp تقريبًا.
إلى 1 بكسل. عند التشغيل على شاشة أعلى الكثافة، يتم تكبير عدد وحدات البكسل المستخدَمة لرسم 1 dp.
باستخدام عامل مناسب لنسبة النقاط لكل بوصة (DPI) للشاشة.
وبالمثل، عند استخدام شاشة منخفضة الكثافة، يتم تقليل عدد وحدات البكسل المستخدمة في 1 بكسل مستقل الكثافة. تتغير نسبة وحدات البكسل في الثانية إلى وحدات البكسل حسب كثافة الشاشة، ولكن ليس بالضرورة بتناسب مباشر. يُمثل استخدام وحدات البكسل الكثافة بدلاً من وحدات البكسل الحل لتغيير حجم أبعاد العرض في التخطيط بشكل صحيح بحيث تتوافق مع كثافات الشاشة المختلفة. ويوفر الاتساق للأحجام الفعلية لعناصر واجهة المستخدم عبر مختلف الأجهزة.
sp
- وحدات بكسل مستقلة عن الحجم: تشبه وحدة البكسل المستقلة الكثافة، ولكن يتم ضبطها أيضًا من خلال خط المستخدم تفضيل الحجم. نُوصي باستخدام هذه الوحدة عند تحديد أحجام الخط، حتى يتم تعديلها لكل من كثافة الشاشة وتفضيل المستخدم.
pt
- النقاط: 1/72 من البوصة حسب الحجم الفعلي للشاشة، لنفترض أن هناك كثافة تبلغ 72 نقطة لكل بوصة.
px
- وحدات البكسل: تتوافق مع وحدات البكسل الفعلية على الشاشة. لا نوصي باستخدام هذه الوحدة، لأنه ويمكن أن يختلف التمثيل الفعلي عبر الأجهزة. يمكن أن يكون للأجهزة المختلفة عدد مختلف من وحدات البكسل لكل بوصة وقد يحتوي على إجمالي وحدات بكسل أكثر أو أقل على الشاشة.
mm
- المليمتر: بناءً على الحجم الفعلي للشاشة
in
- بوصة: بناءً على الحجم الفعلي للشاشة
ملاحظة: السمة هي مورد بسيط تتم الإشارة إليه.
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك الجمع بين موارد الأبعاد والموارد البسيطة الأخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يعمل رمز التطبيق التالي على استرداد إحدى السمات:
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
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"/>
res/values/filename.xml
رقم التعريف
معرّف مورد فريد محدّد في XML باستخدام الاسم الذي أدخلته في "<item>
"
ستنشئ أدوات مطوّري برامج Android عددًا صحيحًا فريدًا في فئة R.java
الخاصة بمشروعك، ويمكنك استخدامه كعدد
معرّف لموارد التطبيق، مثل View
في تنسيق واجهة المستخدم
أو عدد صحيح فريد لاستخدامه في رمز التطبيق، مثل معرّف لمربع حوار أو
رمز النتيجة.
ملاحظة: رقم التعريف هو مورد بسيط تتم الإشارة إليه
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك الجمع بين موارد المعرفات وموارد بسيطة أخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد. أيضًا، لا يشير مورد المعرف إلى
عنصر مورد فعلي: معرف فريد يمكنك إرفاقه بموارد أخرى أو استخدامه
كعدد صحيح فريد في تطبيقك.
- مكان الملف:
- ويكون اسم الملف عشوائيًا.
- مرجع الموارد:
-
في 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"
كمعرّف فريد. لأحد الحوارات:Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);في التطبيق نفسه، تتم مقارنة رقم تعريف
"dialog_exit"
عند إنشاء مربّع حوار:Kotlin
override fun
onCreateDialog
(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }Java
protected Dialog
onCreateDialog
(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
res/values/filename.xml
عدد صحيح
عدد صحيح تم تحديده في ملف XML.
ملاحظة: العدد الصحيح هو مورد بسيط تتم الإشارة إليه.
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك الجمع بين موارد الأعداد الصحيحة والموارد البسيطة الأخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يسترد رمز التطبيق التالي عددًا صحيحًا:
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
res/values/filename.xml
مصفوفة عدد صحيح
مصفوفة من الأعداد الصحيحة المحددة في XML.
ملاحظة: الصفيفة من عدد صحيح هي مورد بسيط تتم الإشارة إليه
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك الجمع بين موارد صفيف الأعداد الصحيحة والموارد البسيطة الأخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يسترد رمز التطبيق التالي صفيف العدد الصحيح:
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
res/values/filename.xml
المصفوفة المكتوبة
تمثّل هذه السمة TypedArray
محدّدًا في ملف XML. يمكنك استخدام
ذلك لإنشاء صفيف من الموارد الأخرى، مثل العناصر القابلة للرسم. ليس من الضروري أن تكون الصفيفة متجانسة، لذا يمكنك إنشاء صفيف من أنواع موارد مختلطة، ولكن
على دراية بماهية أنواع البيانات ومكانها في الصفيفة بحيث يمكنك الحصول على
كل عنصر بطرق get...()
في فئة TypedArray
.
ملاحظة: المصفوفة المكتوبة هو مورد بسيط تتم الإشارة إليه
باستخدام القيمة المقدّمة في السمة name
، وليس اسم ملف XML. بالنسبة
مثلاً، يمكنك دمج موارد الصفائف المكتوبة مع موارد بسيطة أخرى في ملف XML واحد،
أسفل عنصر <resources>
واحد.
- مكان الملف:
-
ويكون اسم الملف عشوائيًا. يتم استخدام
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>
يسترد رمز التطبيق التالي كل صفيف ثم يحصل على الإدخال الأول في كل صفيف:
Kotlin
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)Java
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);
res/values/filename.xml