المزيد من أنواع الموارد

تحدد هذه الصفحة أنواع الموارد التالية التي يمكنك إرسالها خارجيًا:

قيمة منطقية
مورد XML يتضمّن قيمة منطقية
اللون
مورد XML يتضمّن قيمة لون (لون سداسي عشري)
السمة
مورد XML يحمل قيمة سمة (مع وحدة قياس).
الإندونيسية
مورد XML يوفر معرّفًا فريدًا لموارد التطبيق ومكوّناته
عدد صحيح
مورد XML يحمل قيمة عدد صحيح
صفيفة عدد صحيح
مورد XML يوفّر مجموعة من الأعداد الصحيحة
المصفوفة المكتوبة
مورد XML يوفّر عنصر TypedArray (يمكنك استخدامه لمجموعة من العناصر القابلة للرسم).

منطقية

قيمة منطقية معرَّفة في XML.

ملاحظة: القيمة المنطقية هي مورد بسيط تتم الإشارة إليه باستخدام القيمة المقدَّمة في السمة 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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<bool>
قيمة منطقية: true أو false

السمات:

name
سلسلة: اسم للقيمة المنطقية يُستخدم هذا الرقم كرقم تعريف المورد.
مثلا:
تم حفظ ملف 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" />

اللون

قيمة لون يتم تحديدها في XML. يتم تحديد اللون باستخدام قيمة نموذج أحمر أخضر أزرق وقناة ألفا. يمكنك استخدام مورد لون في أي مكان يقبل قيمة لون سداسية عشرية. يمكنك أيضًا استخدام مورد ألوان عندما يكون موردًا قابلاً للرسم بتنسيق XML، مثل android:drawable="@color/green".

تبدأ القيمة دائمًا بحرف رطل (#)، متبوعًا بمعلومات Alpha-Red-Green-Blue بأحد التنسيقات التالية:

  • #نموذج أحمر أخضر أزرق
  • #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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<color>
لون يتم التعبير عنه بنظام سداسي عشري.

السمات:

name
سلسلة: اسم اللون. يُستخدم هذا الرقم كرقم تعريف المورد.
مثلا:
تم حفظ ملف 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"/>

البُعد

قيمة سمة يتم تحديدها في ملف XML. يتم تحديد البُعد برقم متبوعًا بوحدة قياس، مثل 10 بكسل أو 2 بوصة أو 5sp. يعتمد نظام التشغيل Android وحدات القياس التالية:

dp
وحدات البكسل غير المرتبطة بالكثافة: هي وحدة مجرّدة تستند إلى الكثافة المادية للشاشة. وتعود هذه الوحدات إلى الشاشة التي تبلغ درجة دقتها 160 نقطة لكل بوصة، أي ما يساوي 1 وحدة بكسل مستقلة الكثافة تقريبًا 1 بكسل تقريبًا. عند تشغيل الفيديو على شاشة ذات كثافة أعلى، يتم زيادة عدد وحدات البكسل المستخدمة للرسم بمقدار 1 وحدة بكسل مستقلة الكثافة بمقدار عامل مناسب للنقاط لكل بوصة (DPI) في الشاشة.

وبالمثل، عندما تكون الشاشة منخفضة الكثافة، يتم تقليل عدد وحدات البكسل المستخدمة لقيمة 1 وحدة بكسل مستقلة الكثافة. تتغير نسبة وحدات البكسل في الثانية إلى وحدات البكسل حسب كثافة الشاشة، ولكن ليس بالضرورة بالتناسب المباشر. ويعتبر استخدام وحدات dp بدلاً من وحدات بكسل حلاً لجعل أبعاد العرض في التخطيط لديك يتم تغيير حجمها بشكل صحيح حسب كثافات الشاشة المختلفة. ويوفر الاتساق مع الأحجام الواقعية لعناصر واجهة المستخدم عبر الأجهزة المختلفة.

sp
وحدات البكسل غير المرتبطة بالمقياس: تشبه وحدة البكسل dp، ولكن يتم قياسها أيضًا وفقًا لحجم الخط الذي يفضّله المستخدم. ننصح باستخدام هذه الوحدة عند تحديد أحجام الخطوط، حتى يتم تعديلها وفقًا لكثافة الشاشة وما يفضّله المستخدم.
pt
النقاط: 1/72 بوصة استنادًا إلى الحجم الفعلي للشاشة، مع افتراض أنّ الشاشة بكثافة 72 نقطة لكل بوصة
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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<dimen>
سمة يمثّلها عدد عائم متبوع بوحدة قياس (dp وsp، وpt وpx وmm وin).

السمات:

name
سلسلة: اسم السمة يُستخدم هذا الرقم كرقم تعريف المورد.
مثلا:
تم حفظ ملف 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"/>

رقم التعريف

معرّف مورد فريد محدد في 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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<item>
تحدّد معرّفًا فريدًا. لا يأخذ قيمة، بل السمات فقط.

السمات:

type
يجب أن تكون "id".
name
سلسلة: يجب إدخال اسم فريد للمعرّف.
مثلا:

ملف 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;
}

عدد صحيح

عدد صحيح يتم تعريفه في ملف 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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<integer>
عدد صحيح.

السمات:

name
سلسلة: تمثّل هذه السمة اسم العدد الصحيح. يُستخدم هذا الرقم كرقم تعريف المورد.
مثلا:

ملف 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);

صفيفة عدد صحيح

مصفوفة من الأعداد الصحيحة المحددة في ملف 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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<integer-array>
تحدد صفيفًا من الأعداد الصحيحة. تحتوي على عنصر <item> ثانوي واحد أو أكثر.

السمات:

android:name
سلسلة: اسم الصفيفة. يستخدم هذا الاسم كمعرف المورد للإشارة إلى الصفيفة.
<item>
عدد صحيح. يمكن أن تكون القيمة مرجعًا لمورد عدد صحيح آخر. يجب أن يكون عنصرًا ثانويًا للعنصر <integer-array>.

ما مِن سمات.

مثلا:
تم حفظ ملف 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);

المصفوفة المكتوبة

تمثّل هذه السمة 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>
العناصر:
<resources>
يجب ملء هذا الحقل. هذه هي العقدة الجذر.

ما مِن سمات.

<array>
تعرِّف صفيفًا. تحتوي على عنصر <item> ثانوي واحد أو أكثر.

السمات:

android:name
سلسلة: اسم الصفيفة. يستخدم هذا الاسم كمعرف المورد للإشارة إلى الصفيفة.
<item>
مورد عام. يمكن أن تكون القيمة مرجعًا لمورد أو نوع بيانات بسيط. يجب أن يكون عنصرًا ثانويًا لعنصر <array>.

ما مِن سمات.

مثلا:
تم حفظ ملف 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);