Layer List
قائمة الطبقات
A LayerDrawable هو كائن قابل LayerDrawable الذي يدير مصفوفة من المسحات الأخرى. يتم رسم كل رسم في القائمة في ترتيب القائمة - يتم سحب آخر رسم في القائمة على القمة.
يتم تمثيل كل رسم بواسطة عنصر <item> داخل عنصر <layer-list> .
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى LayerDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</layer-list>
عناصر:
<layer-list>
مطلوب. يجب أن يكون هذا العنصر الجذر. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
<item>
يحدد الرسم القابل للرسم في الطبقة القابلة للرسم، في وضع يحدده سماته. يجب أن يكون طفلا لعنصر <selector> . قبول عناصر <bitmap> الطفل.
الصفات:
android:drawable
مورد دراوابل . مطلوب . الإشارة إلى مورد قابل للرسم.
android:id
معرف المورد . معرف مورد فريد لهذا القابل للرسم. لإنشاء معرف مورد جديد لهذا العنصر، استخدم النموذج: "@+id/ name " . يشير رمز الجمع إلى أنه يجب إنشاء هذا ك معرف جديد. يمكنك استخدام هذا المعرف لاسترداد وتعديل View.findViewById() مع View.findViewById() أو Activity.findViewById() .
android:top
عدد صحيح . أعلى تعويض بالبكسل.
android:right
عدد صحيح . الإزاحة الصحيحة بالبكسل.
android:bottom
عدد صحيح . الإزاحة السفلية بالبكسل.
android:left
عدد صحيح . يسار الإزاحة بالبكسل.
يتم تحجيم جميع العناصر القابلة للرسم لتناسب حجم التي تحتوي على عرض، بشكل افتراضي. وبالتالي، وضع صورك في قائمة طبقة في مواقف مختلفة قد يزيد من حجم عرض وبعض الصور على نطاق حسب الاقتضاء. لتجنب تغيير حجم العناصر في القائمة، استخدم عنصر <bitmap> داخل العنصر <item> لتحديد الرسم القابل للرسم وتعريف الجاذبية إلى شيء لا يتم قياسه، مثل "center" . على سبيل المثال، يقوم <item> التالي بتعريف عنصر يتوافق مع الحاوية الخاصة به عرض:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>
لاحظ أن هذا المثال يستخدم عنصر متداخل <bitmap> لتعريف المورد القابل للرسم لكل عنصر مع خطورة "مركز". وهذا يضمن أن أيا من الصور يتم تحجيمها لتناسب حجم الحاوية، بسبب تغيير حجم الناجمة عن إزاحة الصور.
يطبق تنسيق شمل هذا المستند القابل للرسم على طريقة العرض::
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/layers" />
والنتيجة هي كومة من الصور تعويض متزايد:
أنظر أيضا:
LayerDrawable
قائمة الدولة
A StateListDrawable هو كائن قابل StateListDrawable تعريف في شمل يستخدم عدة صور مختلفة لتمثيل نفس الرسم، اعتمادا على حالة الكائن. على سبيل المثال، يمكن أن توجد القطعة Button في واحدة من عدة حالات مختلفة (الضغط، تركز، أو لا)، وذلك باستخدام قائمة الدولة دراوابل، يمكنك تقديم صورة خلفية مختلفة لكل ولاية.
يمكنك وصف قائمة الحالة في ملف شمل. يتم تمثيل كل رسم بواسطة عنصر <selector> داخل عنصر <selector> واحد. كل <item> يستخدم سمات مختلفة لوصف الحالة التي يجب أن يستخدم فيها الرسم للرسم.
خلال كل تغيير الدولة، يتم اجتياز قائمة الدولة من أعلى إلى أسفل ويتم استخدام العنصر الأول الذي يطابق الحالة الحالية - لا يستند الاختيار على "أفضل مباراة"، ولكن ببساطة البند الأول الذي يلبي المعايير الدنيا للدولة .
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى StateListDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_hovered=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_activated=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
عناصر:
<selector>
مطلوب. يجب أن يكون هذا العنصر الجذر. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
android:constantSize
منطقي . "صحيح" إذا كان حجم الداخلية المبلغ القابل للإزالة يبقى ثابتا مع تغير الدولة (الحجم هو الحد الأقصى لجميع الولايات)؛ "كاذبة" إذا كان حجم يختلف استنادا إلى الحالة الراهنة. الافتراضي هو فالس.
android:dither
منطقي . "صحيح" لتمكين تمرير الصورة النقطية إذا لم يكن لدى الصورة النقطية نفس التكوين بكسل مثل الشاشة (على سبيل المثال، صورة نقطية أرغب 8888 مع شاشة رغب 565)؛ "كاذبة" لتعطيل التدرج. الافتراضي هو الصحيح.
android:variablePadding
منطقي . "صحيح" إذا كان يجب أن يتغير الحشو دراوابل على أساس الحالة الحالية التي تم اختيارها. "كاذبة" إذا كان يجب أن تبقى الحشو نفسه (على أساس الحد الأقصى لحشو جميع الولايات). يتطلب تمكين هذه الميزة التعامل مع تخطيط الأداء عندما تتغير الحالة، والتي غالبا ما تكون غير معتمدة. الافتراضي هو فالس.
<item>
يحدد قابلية السحب للاستخدام خلال حالات معينة، كما هو موضح من قبل خصائصه. يجب أن يكون طفلا لعنصر <selector> .
الصفات:
android:drawable
مورد دراوابل . مطلوب . الإشارة إلى مورد قابل للرسم.
android:state_pressed
منطقي . "صحيح" إذا كان ينبغي استخدام هذا البند عند الضغط على الكائن (مثل عندما يتم لمس زر / النقر)؛ "فالس" إذا كان يجب استخدام هذا العنصر في الحالة الافتراضية غير المضغوطة.
android:state_focused
منطقي . "صحيح" إذا كان ينبغي استخدام هذا العنصر عندما يكون الكائن لديه التركيز المدخلات (مثل عندما يقوم المستخدم بتحديد إدخال النص)؛ "كاذبة" إذا كان يجب استخدام هذا العنصر في الحالة الافتراضية غير المركزة.
android:state_hovered
منطقي . "صحيح" إذا كان يجب استخدام هذا العنصر عندما يتم تحريك العنصر بواسطة المؤشر؛ "كاذبة" إذا كان يجب استخدام هذا العنصر في الحالة الافتراضية غير المتحفظة. في كثير من الأحيان، يمكن أن يكون هذا القابل للرسم نفس الدرج المستخدم للدولة "المركزة".
مقدمة في مستوى أبي 14.
android:state_selected
منطقي . "صحيح" إذا كان ينبغي استخدام هذا العنصر عندما يكون الكائن هو اختيار المستخدم الحالي عند التنقل مع عنصر تحكم اتجاهي (مثل عند التنقل عبر قائمة مع لوحة د)؛ "كاذبة" إذا كان يجب استخدام هذا العنصر عند عدم تحديد الكائن.
يتم استخدام الدولة المختارة عند التركيز ( android:state_focused ) ليست كافية (مثل عندما يكون عرض القائمة التركيز ويتم اختيار عنصر داخله مع د وسادة).
android:state_checkable
منطقي . "صحيح" إذا كان ينبغي استخدام هذا البند عندما يكون الكائن قابل للتحقق؛ "كاذبة" إذا كان يجب استخدام هذا العنصر عندما يكون الكائن غير قابل للتحقق. (يكون مفيدا فقط إذا كان الكائن يمكنه الانتقال بين أداة يمكن التحقق منها وغير قابلة للتحقق.)
android:state_checked
منطقي . "صحيح" إذا كان ينبغي استخدام هذا البند عند فحص الكائن؛ "كاذبة" إذا كان ينبغي استخدامها عند إلغاء تحديد الكائن.
android:state_enabled
منطقي . "صحيح" إذا كان ينبغي استخدام هذا العنصر عند تمكين الكائن (قادرة على تلقي أحداث اللمس / النقر). "كاذبة" إذا كان يجب استخدامها عند تعطيل الكائن.
android:state_activated
منطقي . "صحيح" إذا كان يجب استخدام هذا العنصر عندما يتم تنشيط الكائن على أنه الاختيار المستمر (مثل "تمييز" عنصر القائمة المحدد سابقا في عرض تنقل مستمر)؛ "كاذبة" إذا كان يجب استخدامها عند عدم تنشيط الكائن.
مقدمة في مستوى أبي 11.
android:state_window_focused
منطقي . "صحيح" إذا كان ينبغي استخدام هذا البند عند التركيز على إطار التطبيق (التطبيق في المقدمة)، "فالس" إذا كان يجب استخدام هذا البند عندما لا يكون إطار التطبيق التركيز (على سبيل المثال، إذا كان الإعلام الظل هو سحبت أو يظهر مربع حوار).
ملاحظة: تذكر أن أندرويد ينطبق العنصر الأول في قائمة الحالة الذي يطابق الحالة الحالية للكائن. لذلك، إذا كان العنصر الأول في القائمة يحتوي على أي من سمات الدولة أعلاه، ثم يتم تطبيقها في كل مرة، وهذا هو السبب يجب أن تكون القيمة الافتراضية الخاصة بك دائما آخر (كما هو موضح في المثال التالي).
مثال:
ملف شمل المحفوظ في res/drawable/button.xml :
res/drawable/button.xml
:<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
تخطيط شمل هذا ينطبق على قائمة الدولة يمكن سحبها إلى زر::
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
أنظر أيضا:
StateListDrawable
قائمة المستوى
A دراوابل التي تدير عددا من دراوابلز بديلة، كل تعيين قيمة العددية القصوى. تعيين قيمة مستوى setLevel() مع setLevel() تحميل الموارد setLevel() في قائمة المستوى الذي لديه android:maxLevel قيمة أكبر من أو يساوي القيمة التي تم تمريرها إلى الأسلوب.
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى LevelListDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer" />
</level-list>
عناصر:
<level-list>
يجب أن يكون هذا العنصر الجذر. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
<item>
يحدد قابل للرسم للاستخدام على مستوى معين.
الصفات:
android:drawable
مورد دراوابل . مطلوب . الرجوع إلى مورد قابل للرسم.
android:maxLevel
عدد صحيح . الحد الأقصى المسموح به لهذا العنصر.
android:minLevel
عدد صحيح . الحد الأدنى المسموح به لهذا البند.
مثال:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/status_off"
android:maxLevel="0" />
<item
android:drawable="@drawable/status_on"
android:maxLevel="1" />
</level-list>
مرة واحدة يتم تطبيق هذا على View ، يمكن تغيير مستوى مع setLevel() أو setImageLevel() .
أنظر أيضا:
LevelListDrawable
الانتقال دراوابل
A TransitionDrawable هو كائن قابل للرسم يمكن أن تتلاشى بين الموارد القابلة للإزالة اثنين.
يتم تمثيل كل رسم بواسطة عنصر <item> داخل عنصر <transition> واحد. لا يتم اعتماد أكثر من عنصرين. للانتقال إلى الأمام، اتصل startTransition() . للانتقال إلى الوراء، اتصل reverseTransition() .
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى TransitionDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</transition>
عناصر:
<transition>
مطلوب. يجب أن يكون هذا العنصر الجذر. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
<item>
يحدد قابلية السحب لاستخدامها كجزء من الانتقال القابل للرسم. يجب أن يكون طفلا لعنصر <transition> . قبول عناصر <bitmap> الطفل.
الصفات:
android:drawable
مورد دراوابل . مطلوب . الإشارة إلى مورد قابل للرسم.
android:id
معرف المورد . معرف مورد فريد لهذا القابل للرسم. لإنشاء معرف مورد جديد لهذا العنصر، استخدم النموذج: "@+id/ name " . يشير رمز الجمع إلى أنه يجب إنشاء هذا ك معرف جديد. يمكنك استخدام هذا المعرف لاسترداد وتعديل View.findViewById() مع View.findViewById() أو Activity.findViewById() .
android:top
عدد صحيح . أعلى تعويض بالبكسل.
android:right
عدد صحيح . الإزاحة الصحيحة بالبكسل.
android:bottom
عدد صحيح . الإزاحة السفلية بالبكسل.
android:left
عدد صحيح . يسار الإزاحة بالبكسل.
مثال:
ملف شمل المحفوظ في res/drawable/transition.xml :
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/on" />
<item android:drawable="@drawable/off" />
</transition>
يطبق تنسيق شمل هذا المستند القابل للرسم على طريقة العرض:
:
<ImageButton
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/transition" />
وتنفذ التعليمات البرمجية التالية انتقال 500ms من العنصر الأول إلى الثاني::
ImageButton button = (ImageButton) findViewById(R.id.button);
TransitionDrawable drawable = (TransitionDrawable) button.getDrawable();
drawable.startTransition(500);
أنظر أيضا:
TransitionDrawable
انسيت دراوابل
A دراوابل المعرفة في شمل أن إزاحة أخرى دراوابل بواسطة مسافة محددة. وهذا مفيد عندما يحتاج عرض إلى خلفية أصغر من الحدود الفعلية للعرض.
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى InsetDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:insetTop="dimension"
android:insetRight="dimension"
android:insetBottom="dimension"
android:insetLeft="dimension" />
عناصر:
<inset>
يحدد رسم أقحم. يجب أن يكون هذا العنصر الجذر.
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
android:drawable
مورد دراوابل . مطلوب . الرجوع إلى مورد قابل للرسم.
android:insetTop
البعد . أعلى إدراج، كما قيمة البعد أو البعد المورد
android:insetRight
البعد . الحق إنزيت، كما قيمة البعد أو البعد المورد
android:insetBottom
البعد . أسفل إدراج، كما قيمة البعد أو البعد المورد
android:insetLeft
البعد . اليسار إدراج، كمقيمة البعد أو البعد المورد
مثال:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/background"
android:insetTop="10dp"
android:insetLeft="10dp" />
أنظر أيضا:
InsetDrawable
كليب دراوابل
A دراوابل المعرفة في شمل الذي يقطع دراوابل أخرى استنادا إلى هذا المستوى الحالي دراوابل ل. يمكنك التحكم في مقدار القطع الطفل يحصل على قص في العرض والارتفاع على أساس مستوى، فضلا عن الجاذبية للسيطرة حيث يتم وضعها في حاوية الشاملة. غالبا ما تستخدم لتنفيذ أشياء مثل أشرطة التقدم.
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى ClipDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<clip
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:clipOrientation=["horizontal" | "vertical"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"] />
عناصر:
<clip>
يحدد كليب دراوابل. يجب أن يكون هذا العنصر الجذر.
الصفات:
Value | Description |
---|---|
horizontal | Clip the drawable horizontally. |
vertical | Clip the drawable vertically. |
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
android:drawable
مورد دراوابل . مطلوب . الإشارة إلى مورد قابل للرسم.
android:clipOrientation
الكلمة الرئيسية . اتجاه كليب.
يجب أن تكون واحدة من القيم الثابتة التالية:
القيمة وصف
horizontal كليب قابل للرسم أفقيا.
vertical قص قابل للرسم عموديا.
android:gravity
الكلمة الرئيسية . لتحديد مكان مقطع داخل القابل للرسم.
يجب أن تكون واحدة أو أكثر (مفصولة ب '|') للقيم الثابتة التالية:
القيمة وصف
top وضع الكائن في الجزء العلوي من حاوية، وليس تغيير حجمه. عندما clipOrientation هو "vertical" ، لقطة يحدث في الجزء السفلي من دراوابل.
bottom وضع الكائن في الجزء السفلي من حاوية، وليس تغيير حجمه. عندما clipOrientation هو "vertical" ، لقطة يحدث في الجزء العلوي من دراوابل.
left وضع الكائن على الحافة اليسرى من حاوية، لا تغيير حجمه. هذا هو الإعداد الافتراضي. عندما clipOrientation هو "horizontal" ، لقطة يحدث في الجانب الأيمن من دراوابل. هذا هو الإعداد الافتراضي.
right وضع الكائن على الحافة اليمنى من حاوته، وليس تغيير حجمه. عندما clipOrientation هو "horizontal" ، لقطة يحدث في الجانب الأيسر من دراوابل.
center_vertical مكان الكائن في مركز عمودي من حاوية، وليس تغيير حجمه. لقطة يتصرف نفسه كما عندما الجاذبية هو "center" .
fill_vertical تنمو الحجم الرأسي للكائن إذا لزم الأمر لذلك يملأ تماما حاوته. عندما clipOrientation هو "vertical" ، لا يحدث لقطة لأن دروابل يملأ المساحة العمودية (إلا إذا كان مستوى دراوابل هو 0، في هذه الحالة أنها ليست مرئية).
center_horizontal مكان الكائن في مركز أفقي من حاوته، وليس تغيير حجمه. لقطة يتصرف نفسه كما عندما الجاذبية هو "center" .
fill_horizontal تنمو الحجم الأفقي للكائن إذا لزم الأمر بحيث يملأ تماما حاوته. عندما clipOrientation هو "horizontal" ، لا يحدث لقطة لأن دروابل يملأ المساحة الأفقية (إلا إذا كان مستوى دراوابل هو 0، في هذه الحالة أنها ليست مرئية).
center وضع الكائن في وسط حاوته في كل من المحور الرأسي والأفقي، وليس تغيير حجمه. عندما clipOrientation هو "horizontal" ، لقطة يحدث على اليسار واليمين. عندما clipOrientation هو "vertical" ، لقطة يحدث على أعلى وأسفل.
fill تنمو الحجم الأفقي والرأسي للكائن إذا لزم الأمر بحيث يملأ تماما حاوته. لا يحدث تقطيع لأن المسحوب يملأ المساحة الأفقية والعمودية (ما لم يكن مستوى السحب هو 0، وفي هذه الحالة أنها غير مرئية).
clip_vertical خيار إضافي يمكن ضبطه بحيث يكون الجزء العلوي و / أو السفلي من حواف الطفل مقصورا على حدود حاوته. ويستند مقطع على الجاذبية العمودية: مقاطع الجاذبية الأعلى الحافة السفلية، مقاطع الجاذبية أسفل الحافة العلوية، ولا مقاطع كلا الحواف.
clip_horizontal خيار إضافي يمكن تعيينه بحيث يكون الطرفان الأيسر و / أو الأيمن من الطفل مقيدين بحدود حاوته. ويستند مقطع على الجاذبية الأفقية: مقاطع الجاذبية الأيسر الحافة اليمنى، مقاطع الجاذبية الحق في الحافة اليسرى، ولا مقاطع كلا الحواف.
مثال:
ملف شمل المحفوظ في res/drawable/clip.xml :
EXAMPLE:
res/drawable/clip.xml
:<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/android"
android:clipOrientation="horizontal"
android:gravity="left" />
تخطيط شمل التالي يطبق المقطع القابل للسحب إلى عرض:
:
<ImageView
android:id="@+id/image"
android:background="@drawable/clip"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
التعليمات البرمجية التالية يحصل على دراوابل ويزيد من كمية من لقطة من أجل الكشف تدريجيا عن الصورة:
:
ImageView imageview = (ImageView) findViewById(R.id.image);
ClipDrawable drawable = (ClipDrawable) imageview.getBackground();
drawable.setLevel(drawable.getLevel() + 1000);
زيادة مستوى يقلل من كمية من القطع ويكشف ببطء الصورة. هنا هو على مستوى 7000:
ملاحظة: المستوى الافتراضي هو 0، والذي يتم قصه بالكامل بحيث تكون الصورة غير مرئية. عندما يكون مستوى 10،000، لا يتم قص الصورة ومرئية تماما.
أنظر أيضا:
ClipDrawable
مقياس دراوابل
A دراوابل المعرفة في شمل التي تغير حجم دراوابل أخرى على أساس المستوى الحالي.
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى ScaleDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:scaleHeight="percentage"
android:scaleWidth="percentage" />
عناصر:
<scale>
يحدد الرسم القابل للقياس. يجب أن يكون هذا العنصر الجذر.
الصفات:
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
android:drawable
مورد دراوابل . مطلوب . الإشارة إلى مورد قابل للرسم.
android:scaleGravity
الكلمة الرئيسية . يحدد موقف الجاذبية بعد التحجيم.
يجب أن تكون واحدة أو أكثر (مفصولة ب '|') للقيم الثابتة التالية:
Value | Description |
---|---|
top | Put the object at the top of its container, not changing its size. |
bottom | Put the object at the bottom of its container, not changing its size. |
left | Put the object at the left edge of its container, not changing its size. This is the default. |
right | Put the object at the right edge of its container, not changing its size. |
center_vertical | Place object in the vertical center of its container, not changing its size. |
fill_vertical | Grow the vertical size of the object if needed so it completely fills its container. |
center_horizontal | Place object in the horizontal center of its container, not changing its size. |
fill_horizontal | Grow the horizontal size of the object if needed so it completely fills its container. |
center | Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. |
fill | Grow the horizontal and vertical size of the object if needed so it completely fills its container. |
clip_vertical | Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip is based on the vertical gravity: a top gravity clips the bottom edge, a bottom gravity clips the top edge, and neither clips both edges. |
clip_horizontal | Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip is based on the horizontal gravity: a left gravity clips the right edge, a right gravity clips the left edge, and neither clips both edges. |
القيمة وصف
top وضع الكائن في الجزء العلوي من حاوية، وليس تغيير حجمه.
bottom وضع الكائن في الجزء السفلي من حاوية، وليس تغيير حجمه.
left وضع الكائن على الحافة اليسرى من حاوية، لا تغيير حجمه. هذا هو الإعداد الافتراضي.
right وضع الكائن على الحافة اليمنى من حاوته، وليس تغيير حجمه.
center_vertical مكان الكائن في مركز عمودي من حاوية، وليس تغيير حجمه.
fill_vertical تنمو الحجم الرأسي للكائن إذا لزم الأمر بحيث يملأ تماما حاوته.
center_horizontal مكان الكائن في مركز أفقي من حاوته، وليس تغيير حجمه.
fill_horizontal تنمو الحجم الأفقي للكائن إذا لزم الأمر بحيث يملأ تماما حاوته.
center وضع الكائن في وسط حاوته في كل من المحور الرأسي والأفقي، وليس تغيير حجمه.
fill تنمو الحجم الأفقي والرأسي للكائن إذا لزم الأمر بحيث يملأ تماما حاوته.
clip_vertical خيار إضافي يمكن ضبطه بحيث يكون الجزء العلوي و / أو السفلي من حواف الطفل مقصورا على حدود حاوته. ويستند مقطع على الجاذبية العمودية: مقاطع الجاذبية الأعلى الحافة السفلية، مقاطع الجاذبية أسفل الحافة العلوية، ولا مقاطع كلا الحواف.
clip_horizontal خيار إضافي يمكن تعيينه بحيث يكون الطرفان الأيسر و / أو الأيمن من الطفل مقيدين بحدود حاوته. ويستند مقطع على الجاذبية الأفقية: مقاطع الجاذبية الأيسر الحافة اليمنى، مقاطع الجاذبية الحق في الحافة اليسرى، ولا مقاطع كلا الحواف.
android:scaleHeight
النسبة المئوية . ارتفاع المقياس، معبرا عنه كنسبة مئوية من ملزمة. تنسيق القيمة هو شكس٪. على سبيل المثال: 100٪، 12.5٪، إلخ.
android:scaleWidth
النسبة المئوية . عرض المقياس، معبرا عنه كنسبة مئوية من ملزمة. تنسيق القيمة هو شكس٪. على سبيل المثال: 100٪، 12.5٪، إلخ.
مثال:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/logo"
android:scaleGravity="center_vertical|center_horizontal"
android:scaleHeight="80%"
android:scaleWidth="80%" />
أنظر أيضا:
ScaleDrawable
شكل دراوابل
هذا شكل عام محدد في شمل.
مكان الملف:
res/drawable/ filename .xml
يتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى GradientDrawable .
مرجع الموارد:
في جافا: R.drawable. filename R.drawable. filename
في شمل: @[ package :]drawable/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
<gradient
android:angle="integer"
android:centerX="float"
android:centerY="float"
android:centerColor="integer"
android:endColor="color"
android:gradientRadius="integer"
android:startColor="color"
android:type=["linear" | "radial" | "sweep"]
android:useLevel=["true" | "false"] />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<size
android:width="integer"
android:height="integer" />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer"
android:dashGap="integer" />
</shape>
عناصر:
<shape>
شكل دراوابل. يجب أن يكون هذا العنصر الجذر.
الصفات:
Value | Desciption |
---|---|
"rectangle" | A rectangle that fills the containing View. This is the default shape. |
"oval" | An oval shape that fits the dimensions of the containing View. |
"line" | A horizontal line that spans the width of the containing View. This shape requires the <stroke> element to define the width of the line. |
"ring" | A ring shape. |
xmlns:android
سلسلة . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
android:shape
الكلمة الرئيسية . يحدد نوع الشكل. القيم الصالحة هي:
القيمة Desciption
"rectangle" مستطيل يملأ التي تحتوي على عرض. هذا هو الشكل الافتراضي.
"oval" شكل بيضاوي يناسب أبعاد العرض المحتوي.
"line" خط أفقي يمتد عرض الملف الذي يحتوي على فيو. يتطلب هذا الشكل العنصر <stroke> لتحديد عرض السطر.
"ring" شكل حلقة.
يتم استخدام السمات التالية فقط عندما android:shape="ring" :
android:innerRadius
البعد . دائرة نصف قطرها للجزء الداخلي من الحلبة (ثقب في الوسط)، وقيمة البعد أو البعد المورد .
android:innerRadiusRatio
تعويم . دائرة نصف قطرها للجزء الداخلي من الحلبة، وأعرب كنسبة من عرض الحلبة. على سبيل المثال، إذا android:innerRadiusRatio="5" ، ثم دائرة نصف قطرها الداخلي يساوي عرض الحلقة مقسوما على 5. يتم تجاوز هذه القيمة عن طريق android:innerRadius . القيمة الافتراضية هي 9.
android:thickness
البعد . سمك الحلقة، كما قيمة البعد أو البعد الموارد .
android:thicknessRatio
تعويم . سمك الحلقة، معبرا عنها كنسبة من عرض الحلبة. على سبيل المثال، إذا android:thicknessRatio="2" ، ثم يساوي سمك عرض الحلقة مقسوما على 2. يتم تجاوز هذه القيمة عن طريق android:innerRadius . القيمة الافتراضية هي 3.
android:useLevel
منطقي . "صحيح" إذا تم استخدام هذا ك LevelListDrawable . يجب أن يكون هذا عادة "كاذبا" أو قد لا يظهر شكلك.
<corners>
يخلق زوايا مدورة للشكل. ينطبق فقط عندما يكون الشكل مستطيل.
الصفات:
android:radius
البعد . دائرة نصف قطرها لجميع الزوايا، وقيمة البعد أو البعد المورد . يتم تجاوز هذا لكل زاوية بواسطة السمات التالية.
android:topLeftRadius
البعد . نصف القطر للزاوية العلوية اليمنى، كمصدر قيمة أو بعد للبعد .
android:topRightRadius
البعد . دائرة نصف قطرها أعلى الزاوية اليمنى، كمورد قيمة البعد أو البعد .
android:bottomLeftRadius
البعد . نصف القطر للزاوية السفلية اليسرى، كمورد قيمة أو بعد البعد .
android:bottomRightRadius
البعد . نصف قطر الزاوية السفلية اليمنى، كمصدر قيمة أو بعد للبعد .
ملاحظة: يجب أن تقدم كل زاوية (في البداية) نصف قطر الزاوية أكبر من 1، وإلا لا تقريب أي زوايا. إذا كنت تريد زوايا محددة لا تقريب، والعمل حول هو استخدام android:radius لتحديد دائرة نصف قطرها الزاوية الافتراضي أكبر من 1، ولكن بعد ذلك تجاوز كل زاوية مع القيم التي تريد حقا، وتوفير صفر ("0dp" ) حيث كنت لا تريد تدوير زوايا.
<gradient>
لتحديد لون تدرج للشكل.
الصفات:
android:angle
عدد صحيح . زاوية التدرج، بالدرجات. 0 من اليسار إلى اليمين، 90 هو أسفل إلى أعلى. يجب أن يكون مضاعفا من 45. الافتراضي هو 0.
android:centerX
تعويم . X- الموضع النسبي لمركز التدرج (0 - 1.0).
android:centerY
تعويم . وضع Y النسبي لمركز التدرج (0 - 1.0).
android:centerColor
اللون . لون اختياري يأتي بين ألوان البداية والنهاية، كقيمة سداسية عشرية أو مورد لون .
android:endColor
اللون .لون النهاية، كقيمة عشري أو الموارد اللون .
android:gradientRadius
تعويم .في دائرة نصف قطرها عن التدرج. يطبق فقط عندما android:type="radial".
android:startColor
اللون . لون ابتداء، وقيمة ست عشرية أو الموارد اللون .
android:type
الكلمة الرئيسية .نوع من نمط التدرج لتطبيق. القيم الصالحة هي:
القيمة وصف
"linear" والانحدار الخطي. هذا هو الإعداد الافتراضي.
"radial" A شعاعي الانحدار. لون البداية هو لون المركز.
"sweep" A التدرج خط الكاسح.
android:useLevel
منطقي ."صحيح" إذا تم استخدام هذا النحو LevelListDrawable.
<padding>
الحشو لتنطبق على تحتوي على عنصر مشاهدة (هذا منصات موقف محتوى الملف، وليس الشكل).
الصفات:
Value | Description |
---|---|
"linear" | A linear gradient. This is the default. |
"radial" | A radial gradient. The start color is the center color. |
"sweep" | A sweeping line gradient. |
android:left
البعد . ترك الحشو، كقيمة البعد أو الموارد البعد .
android:top
البعد . كبار الحشو، كقيمة البعد أو الموارد البعد .
android:right
البعد . الحشو الصحيح، كقيمة البعد أو الموارد البعد .
android:bottom
البعد . الحشو السفلي، كقيمة البعد أو الموارد البعد .
<size>
حجم الشكل.
الصفات:
android:height
البعد . ارتفاع الشكل، كقيمة البعد أو الموارد البعد .
android:width
البعد . عرض الشكل، كقيمة البعد أو الموارد البعد .
ملاحظة: جداول شكل لحجم الحاوية مشاهدة متناسبة مع أبعاد محددة هنا، بشكل افتراضي. عند استخدام شكل في ImageView، يمكنك تقييد التوسع عن طريق تعيين android:scaleTypeل "center".
<solid>
بلون واحد لملء الشكل.
الصفات:
android:color
اللون . لون لتطبيق الشكل، كقيمة عشري أو الموارد اللون .
<stroke>
خط السكتة الدماغية للشكل.
الصفات:
android:width
البعد . سمك الخط، كقيمة البعد أو الموارد البعد .
android:color
اللون . لون الخط، كقيمة عشري أو الموارد اللون .
android:dashGap
البعد . المسافة بين خط شرطات، كقيمة البعد أو الموارد البعد . صالحة فقط إذا android:dashWidthتم تعيين.
android:dashWidth
البعد . حجم كل خط اندفاعة، كقيمة البعد أو الموارد البعد . صالحة فقط إذا android:dashGapتم تعيين.
مثال:
حفظ ملف XML في res/drawable/gradient_box.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFF0000"
android:endColor="#80FF00FF"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />
</shape>
ينطبق هذا XML تخطيط drawable شكل لالشخصي::
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
هذا رمز التطبيق يحصل على drawable الشكل وينطبق ذلك على طريقة عرض:
:
Resources res = getResources()
;
Drawable shape = res. getDrawable
(R.drawable.gradient_box);
TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);
أنظر أيضا:
ShapeDrawable
تخطيط الموارد
أنظر أيضا
تخطيطات
يحدد مورد التخطيط بنية واجهة المستخدم في نشاط أو مكون من واجهة مستخدم.
مكان الملف:
res/layout/ filename .xml
سيتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى مورد View (أو فئة فرعية).
مرجع الموارد:
في جافا: R.layout. filename R.layout. filename
في شمل: @[ package :]layout/ filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "match_parent" | "wrap_content"]
android:layout_width=["dimension" | "match_parent" | "wrap_content"]
[ViewGroup-specific attributes] >
<View
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "match_parent" | "wrap_content"]
android:layout_width=["dimension" | "match_parent" | "wrap_content"]
[View-specific attributes] >
<requestFocus/>
</View>
<ViewGroup >
<View />
</ViewGroup>
<include layout="@layout/layout_resource"/>
</ViewGroup>
ملاحظة: يمكن أن يكون العنصر الجذر إما عنصر ViewGroup أو View أو a <merge> ViewGroup <merge> ، ولكن يجب أن يكون هناك عنصر جذر واحد فقط ويجب أن يحتوي على xmlns:android سمة مع مساحة أسماء android كما هو موضح.
عناصر:
<ViewGroup>
حاوية لعناصر View أخرى. هناك العديد من أنواع مختلفة من الكائنات ViewGroup وكل واحد يتيح لك تحديد تخطيط العناصر الفرعية بطرق مختلفة. أنواع مختلفة من الكائنات ViewGroup تشمل LinearLayout ، LinearLayout ، و FrameLayout .
يجب ألا تفترض أن أي اشتقاق ViewGroup سوف يقبل متداخلة View s. بعض ViewGroup s هي تطبيقات فئة AdapterView ، الذي يحدد أطفالها فقط من Adapter .
الصفات:
android:id
معرف المورد . اسم مورد فريد للعنصر الذي يمكنك استخدامه للحصول على مرجع إلى مجموعة ViewGroup من التطبيق الخاص بك. اطلع على مزيد من المعلومات حول قيمة android:id أدناه.
android:layout_height
البعد أو الكلمة الرئيسية . مطلوب . الارتفاع للمجموعة، كقيمة البعد (أو مورد البعد ) أو كلمة رئيسية ( "match_parent" أو "wrap_content" ). راجع القيم الصالحة أدناه.
android:layout_width
البعد أو الكلمة الرئيسية . مطلوب . عرض المجموعة، كقيمة للبعد (أو مورد الأبعاد ) أو كلمة رئيسية ( "match_parent" أو "wrap_content" ). راجع القيم الصالحة أدناه.
يتم دعم المزيد من السمات من فئة قاعدة ViewGroup ، ويتم اعتماد العديد من أكثر من قبل كل تنفيذ ViewGroup . للحصول على مرجع من كافة السمات المتوفرة، راجع الوثائق المرجعية المقابلة لفئة ViewGroup (على سبيل المثال، سمات لينيرلايوت شمل ).
<View>
مكون أوي فردي، يشار إليه عموما باسم "القطعة". وتشمل أنواع مختلفة من View الكائنات TextView ، Button ، TextView CheckBox .
الصفات:
android:id
معرف المورد . اسم مورد فريد للعنصر، والذي يمكنك استخدامه للحصول على مرجع إلى View من تطبيقك. اطلع على مزيد من المعلومات حول قيمة android:id أدناه.
android:layout_height
البعد أو الكلمة الرئيسية . مطلوب . الارتفاع للعنصر، كقيمة للبعد (أو مورد الأبعاد ) أو كلمة رئيسية ( "match_parent" أو "wrap_content" ). راجع القيم الصالحة أدناه.
android:layout_width
البعد أو الكلمة الرئيسية . مطلوب . عرض العنصر، كقيمة للبعد (أو مورد الأبعاد ) أو كلمة رئيسية ( "match_parent" أو "wrap_content" ). راجع القيم الصالحة أدناه.
يتم دعم المزيد من السمات بواسطة فئة قاعدة View ، ويتم دعم العديد من الميزات الأخرى من خلال كل تنفيذ View . اقرأ تخطيطات لمزيد من المعلومات. للحصول على مرجع من كافة السمات المتوفرة، راجع الوثائق المرجعية المناظرة (على سبيل المثال، سمات تكستفيو شمل ).
<requestFocus>
يمكن أن يتضمن أي عنصر يمثل كائن View هذا العنصر الفارغ، والذي يعطي التركيز الأولي الأصلي على الشاشة. يمكن أن يكون لديك واحد فقط من هذه العناصر لكل ملف.
<include>
يتضمن ملف تخطيط في هذا التخطيط.
الصفات:
layout
مورد التخطيط . مطلوب . مرجع لمورد تخطيط.
android:id
معرف المورد . يلغي الرقم التعريفي المعطى للعرض الجذر في المخطط المضمن.
android:layout_height
البعد أو الكلمة الرئيسية . يلغي الارتفاع المعطى لعرض الجذر في المخطط المضمن. فقط فعالة إذا android:layout_width يتم الإعلان android:layout_width أيضا.
android:layout_width
البعد أو الكلمة الرئيسية . يلغي العرض المعطى للعرض الجذر في المخطط المضمن. فقط فعالة إذا android:layout_height أعلن android:layout_height أيضا.
يمكنك تضمين أي سمات تخطيط أخرى في <include> التي يدعمها العنصر الجذر في التخطيط المضمن، وسوف تتجاوز تلك المحددة في العنصر الجذر.
تنبيه: إذا كنت تريد تجاوز سمات التنسيق باستخدام علامة <include> android:layout_width <include> ، فيجب عليك تجاوز كل من android:layout_height و android:layout_width لكي يتم تفعيل سمات التخطيط الأخرى.
طريقة أخرى لتشمل تخطيط هو استخدام ViewStub . وهو عرض خفيف الوزن لا يستهلك مساحة تخطيط حتى تقوم بتضخيمه صراحة، وعند هذه النقطة، فإنه يتضمن ملف تخطيط يحدده android:layout السمة. لمزيد من المعلومات حول استخدام ViewStub ، وقراءة تحميل المشاهدات عند الطلب .
<merge>
عنصر الجذر البديل الذي لم يتم رسمه في التسلسل الهرمي للتخطيط. يعد استخدام هذا العنصر الجذر مفيدا عندما تعرف أنه سيتم وضع هذا التنسيق في تخطيط يحتوي بالفعل على الأصل المناسب عرض لاحتواء أطفال العنصر <merge> . ويكون هذا مفيدا بشكل خاص عندما تخطط لتضمين هذا التنسيق في ملف تخطيط آخر باستخدام <include> ViewGroup <include> ولا يتطلب هذا التخطيط حاوية مجموعة عرض مختلفة. لمزيد من المعلومات حول دمج التنسيقات، اقرأ إعادة استخدام التنسيقات مع <إينلود /> .
قيمة android:id
بالنسبة لقيمة المعرف، يجب عليك عادة استخدام نموذج التركيب هذا: "@+id/ name " . يشير رمز الجمع + ، إلى أن هذا هو معرف مورد جديد وسوف الأداة aapt إنشاء عدد صحيح مورد جديد في فئة R.java ، إذا لم يكن موجودا بالفعل. فمثلا:
<TextView android:id="@+id/nameTextbox"/>
اسم nameTextbox هو الآن معرف مورد مرفق بهذا العنصر. يمكنك ثم الرجوع إلى TextView الذي يرتبط معرف في جافا:
:
findViewById(R.id.nameTextbox);
يقوم هذا الرمز بإرجاع كائن TextView .
ومع ذلك، إذا كنت قد حددت بالفعل معرف معرف (وأنها لم تستخدم بالفعل)، ثم يمكنك تطبيق هذا الرقم إلى عنصر View عن طريق استبعاد رمز زائد في android:id قيمة android:id .
قيمة android:layout_height android:layout_width :
يمكن التعبير عن قيمة الارتفاع والعرض باستخدام أي من وحدات البعد التي يدعمها أندرويد (بس أو دب أو سب أو بت أو إن مم) أو باستخدام الكلمات الرئيسية التالية:
Value | Description |
---|---|
match_parent | Sets the dimension to match that of the parent element. Added in API Level 8 to deprecate fill_parent . |
wrap_content | Sets the dimension only to the size required to fit the content of this element. |
القيمة وصف
match_parent لتعيين البعد لمطابقة العنصر الرئيسي. تمت إضافته في مستوى واجهة برمجة التطبيقات (أبي ليفيل 8) fill_parent
wrap_content لتعيين البعد فقط على الحجم المطلوب لتتناسب مع محتوى هذا العنصر.
عناصر العرض المخصص
يمكنك إنشاء عناصر View و View ViewGroup المخصصة الخاصة بك وتطبيقها على تخطيطك بنفس عنصر التخطيط القياسي. يمكنك أيضا تحديد السمات المعتمدة في عنصر شمل. لمعرفة المزيد، راجع دليل مطوري المكونات المخصصة .
مثال:
ملف شمل المحفوظ في res/layout/main_activity.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
سيقوم هذا الرمز تطبيق تحميل تخطيط Activity ، في طريقة onCreate() :
:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
أنظر أيضا:
تخطيطات
View
ViewGroup
مورد القائمة
أنظر أيضا
القوائم
يحدد مورد القائمة قائمة التطبيقات (قائمة الخيارات أو قائمة السياق أو القائمة الفرعية) التي يمكن تضخيمها باستخدام MenuInflater .
للحصول على دليل باستخدام القوائم، راجع دليل مطوري القوائم .
مكان الملف:
res/menu/ filename .xml
سيتم استخدام اسم الملف كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى مورد Menu (أو الفئة الفرعية).
مرجع الموارد:
في جافا: R.menu. filename R.menu. filename
في شمل: @[ package :]menu. filename @[ package :]menu. filename
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@[+][package:]id/resource_name"
android:title="string"
android:titleCondensed="string"
android:icon="@[package:]drawable/drawable_resource_name"
android:onClick="method name"
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
android:actionLayout="@[package:]layout/layout_resource_name"
android:actionViewClass="class name"
android:actionProviderClass="class name"
android:alphabeticShortcut="string"
android:alphabeticModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:numericShortcut="string"
android:numericModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:checkable=["true" | "false"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" />
<group android:id="@[+][package:]id/resource name"
android:checkableBehavior=["none" | "all" | "single"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" >
<item />
</group>
<item >
<menu>
<item />
</menu>
</item>
</menu>
عناصر:
<menu>
مطلوب. يجب أن تكون هذه العقدة الجذر. يحتوي على <item> و / أو <group> عناصر.
الصفات:
xmlns:android
مساحة اسم شمل . مطلوب. يحدد مساحة اسم شمل، والتي يجب أن تكون "http://schemas.android.com/apk/res/android" .
<item>
عنصر القائمة. قد تحتوي على عنصر <menu> مينو <menu> (لقائمة فرعية). يجب أن يكون طفلا من عنصر <menu> أو <group> .
الصفات:
android:id
معرف المورد . معرف مورد فريد. لإنشاء معرف مورد جديد لهذا العنصر، استخدم النموذج: "@+id/ name " . يشير رمز الجمع إلى أنه يجب إنشاء هذا ك معرف جديد.
android:title
مورد سلسلة . عنوان القائمة كمورد سلسلة أو سلسلة خام.
android:titleCondensed
مورد سلسلة . عنوان مكثف كمورد سلسلة أو سلسلة خام. يستخدم هذا العنوان للحالات التي يكون فيها العنوان العادي طويلا جدا.
android:icon
مورد دراوابل . صورة لاستخدامها كرمز عنصر القائمة.
android:onClick
اسم الأسلوب . طريقة الاتصال عند النقر على عنصر القائمة هذا. يجب أن يتم الإعلان عن الطريقة في النشاط MenuItem وتقبل MenuItem كمعلمة الوحيدة التي تشير إلى العنصر الذي تم النقر عليه. هذه الطريقة لها الأسبقية على الاستدعاء القياسي إلى onOptionsItemSelected() . انظر المثال في الأسفل.
تحذير: إذا قمت بإخفاء التعليمات البرمجية باستخدام بروغوارد (أو أداة مشابهة)، فتأكد من استبعاد الطريقة التي تحددها في هذه السمة من إعادة التسمية، لأنه يمكن كسر الوظيفة.
مقدمة في أبي ليفيل 11.
android:showAsAction
الكلمة الرئيسية . متى وكيف يجب أن يظهر هذا العنصر كبند إجراء في شريط التطبيق. يمكن أن يظهر عنصر القائمة كعنصر إجراء فقط عندما يتضمن النشاط شريط التطبيق. القيم الصالحة:
القيمة وصف
ifRoom فقط ضع هذا البند في شريط التطبيق إذا كان هناك مجال لذلك. إذا لم يكن هناك مجال لجميع العناصر التي تحمل علامة "ifRoom" ، يتم عرض العناصر التي تحتوي على أدنى قيم orderInCategory ويتم عرض العناصر المتبقية في القائمة تجاوز.
withText كما تشمل نص العنوان (التي يحددها android:title ) مع عنصر العمل. يمكنك تضمين هذه القيمة جنبا إلى جنب مع واحدة من الآخرين كعلامة مجموعة، عن طريق فصلها مع أنبوب | .
never لا تضع هذا العنصر مطلقا في شريط التطبيق. بدلا من ذلك، أدرج العنصر في القائمة تجاوز شريط التطبيق.
always ضع هذا العنصر دائما في شريط التطبيق. تجنب استخدام هذا ما لم يكن من الضروري أن يظهر العنصر دائما في شريط الإجراءات. يمكن أن يؤدي تعيين عناصر متعددة لتظهر دائما كعناصر الإجراء إلى تداخلها مع واجهة المستخدم الأخرى في شريط التطبيق.
collapseActionView عرض العمل المرتبطة بهذا البند العمل (كما أعلن من قبل android:actionLayout أو android:actionViewClass ) هو للطي.
مقدمة في أبي ليفيل 14.
Value | Description |
---|---|
ifRoom | Only place this item in the app bar if there is room for it. If there is not room for all the items marked "ifRoom" , the items with the lowest orderInCategory values are displayed as actions, and the remaining items are displayed in the overflow menu. |
withText | Also include the title text (defined by android:title ) with the action item. You can include this value along with one of the others as a flag set, by separating them with a pipe | . |
never | Never place this item in the app bar. Instead, list the item in the app bar's overflow menu. |
always | Always place this item in the app bar. Avoid using this unless it's critical that the item always appear in the action bar. Setting multiple items to always appear as action items can result in them overlapping with other UI in the app bar. |
collapseActionView | The action view associated with this action item (as declared by android:actionLayout orandroid:actionViewClass ) is collapsible.Introduced in API Level 14. |
راجع إضافة فئة التدريب بار التطبيق لمزيد من المعلومات.
مقدمة في أبي ليفيل 11.
android:actionLayout
مورد التخطيط . تخطيط لاستخدامه كعرض الإجراء.
راجع طرق عرض الإجراء ومزودي الإجراءات للحصول على مزيد من المعلومات.
مقدمة في أبي ليفيل 11.
android:actionViewClass
اسم الفئة . اسم فئة مؤهل بالكامل للعرض لاستخدامه كعرض الإجراء. على سبيل المثال، "android.widget.SearchView" لاستخدام SearchView كطريقة عرض.
راجع طرق عرض الإجراء ومزودي الإجراءات للحصول على مزيد من المعلومات.
تحذير: إذا قمت بإخفاء التعليمات البرمجية باستخدام بروغوارد (أو أداة مشابهة)، فتأكد من استبعاد الفئة التي تحددها في هذه السمة من إعادة التسمية، لأنه يمكن أن يؤدي إلى كسر الوظيفة.
مقدمة في أبي ليفيل 11.
android:actionProviderClass
اسم الفئة . اسم فئة مؤهل بالكامل لبرنامج ActionProvider لاستخدامه بدلا من عنصر الإجراء. على سبيل المثال، "android.widget.ShareActionProvider" لاستخدام ShareActionProvider .
راجع طرق عرض الإجراء ومزودي الإجراءات للحصول على مزيد من المعلومات.
تحذير: إذا قمت بإخفاء التعليمات البرمجية باستخدام بروغوارد (أو أداة مشابهة)، فتأكد من استبعاد الفئة التي تحددها في هذه السمة من إعادة التسمية، لأنه يمكن أن يؤدي إلى كسر الوظيفة.
مقدمة في أبي ليفيل 14.
android:alphabeticShortcut
شار . حرف لمفتاح الاختصار الأبجدي.
android:numericShortcut
عدد صحيح . رقم لمفتاح الاختصار الرقمي.
android:alphabeticModifiers
الكلمة الرئيسية . يعدل الاختصار الأبجدي لعنصر القائمة. تتطابق القيمة الافتراضية مع مفتاح التحكم . القيم الصالحة:
القيمة وصف
META يتوافق مع مفتاح ميتا ميتا
CTRL يتوافق مع مفتاح ميتا للتحكم
ALT يتوافق مع مفتاح ميتا ألت
تحول يتوافق مع مفتاح ميتا شيفت
SYM يتوافق مع مفتاح ميتا سيم
وظيفة يتوافق مع مفتاح ميتا الدالة
Value | Description |
---|---|
META | Corresponds to the Meta meta key |
CTRL | Corresponds to the Control meta key |
ALT | Corresponds to the Alt meta key |
SHIFT | Corresponds to the Shift meta key |
SYM | Corresponds to the Sym meta key |
FUNCTION | Corresponds to the Function meta key |
ملاحظة : يمكنك تحديد عدة كلمات رئيسية في سمة. على سبيل المثال، android:alphabeticModifiers="CTRL|SHIFT" شيفت android:alphabeticModifiers="CTRL|SHIFT" يشير إلى أن لتحريك عنصر القائمة المقابلة، يحتاج المستخدم للضغط على كل من مفاتيح ميتا التحكم و شيفت جنبا إلى جنب مع الاختصار.
يمكنك استخدام الأسلوب setAlphabeticShortcut() تعيين قيم السمات برمجيا. للحصول على مزيد من المعلومات حول السمة alphabeticModifier ، انتقل إلى alphabeticModifiers .
android:numericModifiers
الكلمة الرئيسية . يعدل الاختصار الرقمي لعنصر القائمة. تتطابق القيمة الافتراضية مع مفتاح التحكم . القيم الصالحة:
Value | Description |
---|---|
META | Corresponds to the Meta meta key |
CTRL | Corresponds to the Control meta key |
ALT | Corresponds to the Alt meta key |
SHIFT | Corresponds to the Shift meta key |
SYM | Corresponds to the Sym meta key |
FUNCTION | Corresponds to the Function meta key |
القيمة وصف
META يتوافق مع مفتاح ميتا ميتا
CTRL يتوافق مع مفتاح ميتا للتحكم
ALT يتوافق مع مفتاح ميتا ألت
تحول يتوافق مع مفتاح ميتا شيفت
SYM يتوافق مع مفتاح ميتا سيم
وظيفة يتوافق مع مفتاح ميتا الدالة
ملاحظة : يمكنك تحديد عدة كلمات رئيسية في سمة. على سبيل المثال، android:numericModifiers="CTRL|SHIFT" يشير إلى أن لتحريك عنصر القائمة المقابلة، يحتاج المستخدم إلى الضغط على كل من مفاتيح ميتا التحكم و شيفت جنبا إلى جنب مع الاختصار.
يمكنك استخدام الأسلوب setNumericShortcut() لتعيين قيم السمات برمجيا. لمزيد من المعلومات حول السمة numericModifier ، انتقل إلى numericModifiers .
android:checkable
منطقي . "صحيح" إذا كان هذا البند هو قابل للفحص.
android:checked
منطقي . "صحيح" إذا تم فحص العنصر افتراضيا.
android:visible
منطقي . "صحيح" إذا كان العنصر مرئيا بشكل افتراضي.
android:enabled
منطقي . "صحيح" إذا تم تمكين العنصر افتراضيا.
android:menuCategory
الكلمة الرئيسية . القيمة المقابلة Menu CATEGORY_* الثوابت، التي تحدد أولوية العنصر. القيم الصالحة:
القيمة وصف
Value | Description |
---|---|
container | For items that are part of a container. |
system | For items that are provided by the system. |
secondary | For items that are user-supplied secondary (infrequently used) options. |
alternative | For items that are alternative actions on the data that is currently displayed. |
container بالنسبة إلى العناصر التي تعد جزءا من الحاوية.
system بالنسبة إلى العناصر التي يوفرها النظام.
secondary بالنسبة إلى العناصر التي يتم توفيرها من قبل المستخدم (خيارات غير مستخدمة).
alternative بالنسبة إلى العناصر التي تعد إجراءات بديلة على البيانات المعروضة حاليا.
android:orderInCategory
عدد صحيح . ترتيب "أهمية" البند، ضمن مجموعة.
<group>
مجموعة قائمة (لإنشاء مجموعة من العناصر التي تشارك الصفات، مثل ما إذا كانت مرئية أو ممكنة أو قابلة للتحقق). يحتوي على عنصر واحد أو أكثر من العناصر <item> . يجب أن يكون طفلا من عنصر <menu> .
الصفات:
android:id
معرف المورد . معرف مورد فريد. لإنشاء معرف مورد جديد لهذا العنصر، استخدم النموذج: "@+id/ name " . يشير رمز الجمع إلى أنه يجب إنشاء هذا ك معرف جديد.
android:checkableBehavior
الكلمة الرئيسية . نوع السلوك القابل للتحقق للمجموعة. القيم الصالحة:
Value | Description |
---|---|
none | Not checkable |
all | All items can be checked (use checkboxes) |
single | Only one item can be checked (use radio buttons) |
القيمة وصف
none غير قابل للتحقق
all جميع البنود يمكن التحقق (استخدام خانات)
single يمكن التحقق من عنصر واحد فقط (استخدام أزرار الراديو)
android:visible
منطقي . "صحيح" إذا كانت المجموعة مرئية.
android:enabled
منطقي . "صحيح" إذا تم تمكين المجموعة.
android:menuCategory
الكلمة الرئيسية . القيمة المقابلة Menu CATEGORY_* الثوابت، والتي تحدد أولوية المجموعة. القيم الصالحة:
Value | Description |
---|---|
container | For groups that are part of a container. |
system | For groups that are provided by the system. |
secondary | For groups that are user-supplied secondary (infrequently used) options. |
alternative | For groups that are alternative actions on the data that is currently displayed. |
القيمة وصف
container للمجموعات التي هي جزء من حاوية.
system للمجموعات التي يوفرها النظام.
secondary للمجموعات التي يتم توفيرها من قبل المستخدم الثانوي (نادرا ما تستخدم) الخيارات.
alternative للمجموعات التي هي إجراءات بديلة على البيانات التي يتم عرضها حاليا.
android:orderInCategory
عدد صحيح . الترتيب الافتراضي للعناصر ضمن الفئة.
مثال:
ملف شمل المحفوظ في res/menu/example_menu.xml :
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item1"
android:title="@string/item1"
android:icon="@drawable/group_item1_icon"
android:showAsAction="ifRoom|withText"/>
<group android:id="@+id/group">
<item android:id="@+id/group_item1"
android:onClick="onGroupItemClick"
android:title="@string/group_item1"
android:icon="@drawable/group_item1_icon" />
<item android:id="@+id/group_item2"
android:onClick="onGroupItemClick"
android:title="@string/group_item2"
android:icon="@drawable/group_item2_icon" />
</group>
<item android:id="@+id/submenu"
android:title="@string/submenu_title"
android:showAsAction="ifRoom|withText" >
<menu>
<item android:id="@+id/submenu_item1"
android:title="@string/submenu_item1" />
</menu>
</item>
</menu>
التعليمات البرمجية التطبيق التالية تضخيم القائمة من onCreateOptionsMenu(Menu) ويعلن أيضا رد على النقر على اثنين من العناصر:
:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example_menu, menu);
return true;
}
public void onGroupItemClick(MenuItem item) {
// One of the group items (using the onClick attribute) was clicked
// The item parameter passed here indicates which item it is
// All other menu item clicks are handled by onOptionsItemSelected()
}
الخيط
الموارد سلسلة
يوفر مورد سلسلة سلاسل نصية للتطبيق الخاص بك مع تصميم النص الاختياري والتنسيق. هناك ثلاثة أنواع من الموارد التي يمكن أن توفر التطبيق الخاص بك مع السلاسل:
خيط
مورد شمل الذي يوفر سلسلة واحدة.
صفيف سلسلة
مورد شمل الذي يوفر مجموعة من السلاسل.
الكمية سلاسل (الجمع)
مورد شمل الذي يحمل سلاسل مختلفة للتعددية.
جميع السلاسل قادرة على تطبيق بعض صيغ ترميز وتنسيق التنسيق. للحصول على معلومات حول سلاسل التصميم والتنسيق، راجع القسم الخاص بالتنسيق والتصميم .
خيط
سلسلة واحدة يمكن الرجوع إليها من التطبيق أو من ملفات الموارد الأخرى (مثل تخطيط شمل).
ملاحظة: سلسلة هي مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). لذلك، يمكنك دمج موارد السلسلة مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. يتم استخدام name العنصر <string> كرقم تعريف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى String .
مرجع الموارد:
في جافا: R.string. string_name R.string. string_name
في شمل: @string/ string_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name="string_name"
>text_string</string>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<string>
سلسلة، والتي يمكن أن تشمل علامات التصميم. حذار أنه يجب عليك الهروب الفواصل العليا وعلامات الاقتباس. للحصول على مزيد من المعلومات حول كيفية نمط وتنسيق السلاسل بشكل صحيح راجع التنسيق والتصميم ، أدناه.
الصفات:
name
سلسلة . اسم السلسلة. يستخدم هذا الاسم كرقم تعريف المورد.
مثال:
ملف شمل المحفوظ في res/values/strings.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello!</string>
</resources>
تخطيط شمل هذا يطبق سلسلة على طريقة عرض:
:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
يسترجع رمز التطبيق هذا سلسلة:
:
String string = getString
(R.string.hello)
يمكنك استخدام إما getString(int) أو getText(int) لاستعادة سلسلة. getText(int) يحتفظ أي نص النص الغنية تطبيقها على السلسلة.
صفيف سلسلة
مجموعة من السلاسل التي يمكن الرجوع إليها من التطبيق.
ملاحظة: صفيف سلسلة هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد مصفوفة السلاسل مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. يتم استخدام name العنصر <string-array> كمعرف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى مصفوفة من String s.
مرجع الموارد:
في جافا: R.array. string_array_name R.array. string_array_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array
name="string_array_name">
<item
>text_string</item>
</string-array>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<string-array>
يحدد مجموعة من السلاسل. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
name
سلسلة . اسم للمصفوفة. يتم استخدام هذا الاسم كمعرف مورد للإشارة إلى المصفوفة.
<item>
سلسلة، والتي يمكن أن تشمل علامات التصميم. يمكن أن تكون القيمة مرجعا لمورد سلسلة آخر. يجب أن يكون طفلا لعنصر <string-array> . حذار أنه يجب عليك الهروب الفواصل العليا وعلامات الاقتباس. انظر التنسيق والتصميم ، أدناه، للحصول على معلومات حول نمط بشكل صحيح وتنسيق السلاسل الخاصة بك.
لا توجد سمات.
مثال:
ملف شمل المحفوظ في res/values/strings.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
</resources>
يسترجع رمز التطبيق هذا مصفوفة سلسلة::
Resources res = getResources()
;
String[] planets = res.getStringArray
(R.array.planets_array);
الكمية سلاسل (الجمع)
لغات مختلفة لديها قواعد مختلفة للاتفاق النحوي مع الكمية. في اللغة الإنجليزية، على سبيل المثال، الكمية 1 هي حالة خاصة. نكتب "1 كتاب"، ولكن لأي كمية أخرى كنا نكتب " ن الكتب". هذا التمييز بين المفرد والجمع هو شائع جدا، ولكن لغات أخرى تجعل تمييزا أدق. مجموعة كاملة بدعم من الروبوت هو zero ، one ، two ، few ، many ، other .
قواعد لتحديد أي حالة لاستخدام لغة معينة وكمية يمكن أن تكون معقدة جدا، لذلك الروبوت يوفر لك أساليب مثل getQuantityString() لتحديد الموارد المناسبة بالنسبة لك.
على الرغم من أن تسمى تاريخيا "سلاسل كمية" (ولا تزال تسمى ذلك في أبي)، ينبغي أن تستخدم سلاسل الكمية فقط للجمع. سيكون من الخطأ استخدام سلاسل الكمية لتنفيذ شيء مثل "البريد الوارد" في غميل مقابل "البريد الوارد (12)" عندما تكون هناك رسائل غير مقروءة، على سبيل المثال. قد يبدو من المناسب استخدام السلاسل الكمية بدلا من العبارة إف، ولكن من المهم أن نلاحظ أن بعض اللغات (مثل الصينية) لا تجعل هذه الفروق النحوية على الإطلاق، لذلك سوف تحصل دائما على السلسلة other .
اختيار أي سلسلة للاستخدام يتم فقط على أساس الضرورة النحوية. في اللغة الإنجليزية، يتم تجاهل سلسلة zero حتى إذا كانت الكمية 0، لأن 0 لا يختلف حرفيا عن 2، أو أي رقم آخر باستثناء 1 ("صفر الكتب"، "كتاب واحد"، "كتابين"، وهكذا على). على العكس من ذلك، في كوريا فقط يتم استخدام سلسلة other أي وقت مضى.
لا تتضلل إما من حقيقة أن two يبدو وكأنه يمكن أن تنطبق فقط على الكمية 2: لغة قد تتطلب أن 2، 12، 102 (وهلم جرا) كلها تعامل مثل بعضها البعض ولكن بشكل مختلف عن غيرها كميات. الاعتماد على مترجمك لمعرفة ما يميز لغتهم فعلا.
وغالبا ما يكون من الممكن تجنب سلاسل الكمية باستخدام تركيبات محايدة الكمية مثل "الكتب: 1". هذا يجعل حياتك ومترجمين حياتك أسهل، إذا كان أسلوب مقبول للتطبيق الخاص بك.
ملاحظة: جمع الجمعيات هو مورد بسيط يشار إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك دمج موارد الجمع مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. يتم استخدام name العنصر <plurals> كرقم تعريف المورد.
مرجع الموارد:
في جافا: R.plurals. plural_name R.plurals. plural_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals
name="plural_name">
<item
quantity=["zero" | "one" | "two" | "few" | "many" | "other"]
>text_string</item>
</plurals>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<plurals>
مجموعة من السلاسل، منها، يتم توفير سلسلة واحدة اعتمادا على كمية شيء. يحتوي على عنصر واحد أو أكثر من العناصر <item> .
الصفات:
name
سلسلة . اسم زوج من السلاسل. يستخدم هذا الاسم كرقم تعريف المورد.
<item>
سلسلة الجمع أو المفرد. يمكن أن تكون القيمة مرجعا لمورد سلسلة آخر. يجب أن يكون طفلا لعنصر <plurals> . حذار أنه يجب عليك الهروب الفواصل العليا وعلامات الاقتباس. انظر التنسيق والتصميم ، أدناه، للحصول على معلومات حول نمط بشكل صحيح وتنسيق السلاسل الخاصة بك.
الصفات:
Value | Description |
---|---|
zero | When the language requires special treatment of the number 0 (as in Arabic). |
one | When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class). |
two | When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian). |
few | When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish). |
many | When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese). |
other | When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English). |
quantity
الكلمة الرئيسية . قيمة تشير إلى متى يجب استخدام هذه السلسلة. القيم الصالحة، مع أمثلة غير شاملة بين قوسين:
القيمة وصف
zero عندما تتطلب اللغة معاملة خاصة لعدد 0 (كما في العربية).
one عندما تتطلب اللغة معاملة خاصة من الأرقام مثل واحد (كما هو الحال مع رقم 1 في اللغة الإنجليزية ومعظم اللغات الأخرى؛ باللغة الروسية، أي عدد تنتهي في 1 ولكن لا تنتهي في 11 في هذه الفئة).
two عندما تتطلب اللغة معاملة خاصة من الأرقام مثل اثنين (كما هو الحال مع 2 في الويلزية، أو 102 في السلوفينية).
few عندما تتطلب اللغة معاملة خاصة للأرقام "الصغيرة" (كما هو الحال مع 2 و 3 و 4 باللغة التشيكية؛ أو الأرقام المنتهية 2 أو 3 أو 4 ولكن ليس 12 أو 13 أو 14 باللغة البولندية).
many عندما تتطلب اللغة معاملة خاصة من أرقام "كبيرة" (كما هو الحال مع الأرقام المنتهية 11-99 في المالطية).
other عندما لا تتطلب اللغة معاملة خاصة من كمية معينة (كما هو الحال مع جميع الأرقام باللغة الصينية، أو 42 باللغة الإنجليزية).
مثال:
ملف شمل المحفوظ في res/values/strings.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="numberOfSongsAvailable">
<!--
As a developer, you should always supply "one" and "other"
strings. Your translators will know which strings are actually
needed for their language. Always include %d in "one" because
translators will need to use %d for languages where "one"
doesn't mean 1 (as explained above).
-->
<item quantity="one">%d song found.</item>
<item quantity="other">%d songs found.</item>
</plurals>
</resources>
ملف شمل المحفوظ في res/values-pl/strings.xml :
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="numberOfSongsAvailable">
<item quantity="one">Znaleziono %d piosenkę.</item>
<item quantity="few">Znaleziono %d piosenki.</item>
<item quantity="other">Znaleziono %d piosenek.</item>
</plurals>
</resources>
Java code:
int count = getNumberOfsongsAvailable();
Resources res = getResources()
;
String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);
عند استخدام الأسلوب getQuantityString() ، تحتاج إلى تمرير count مرتين إذا كانت السلسلة تتضمن تنسيق سلسلة مع رقم. على سبيل المثال، بالنسبة للأحرف %d songs found ، تقوم معلمة count الأول بتحديد سلسلة الجمع المناسبة ويتم إدراج معلمة count الثاني في العنصر النائب %d . إذا كانت سلاسل الجمع الخاصة بك لا تتضمن تنسيق سلسلة، لا تحتاج إلى تمرير المعلمة الثالثة إلى getQuantityString .
التنسيق والتصميم
في ما يلي بعض الأمور المهمة التي يجب أن تعرفها حول كيفية تنسيق موارد السلسلة بشكل صحيح.
الهروب الفواصل العليا ونقلت
إذا كان لديك فاصلة ( ' ) في السلسلة الخاصة بك، يجب عليك إما الهروب من ذلك مع شرطة مائلة للخلف ( \' ) أو إحاطة السلسلة في علامات اقتباس مزدوجة ( "" ). على سبيل المثال، فيما يلي بعض السلاسل التي تعمل ولا تعمل:
<string name="good_example">This\'ll work</string>
<string name="good_example_2">"This'll also work"</string>
<string name="bad_example">This doesn't work</string>
<!-- Causes a compile error -->
إذا كان لديك اقتباس مزدوج في السلسلة الخاصة بك، يجب عليك الهرب منه ( \" .) المحيطي سلسلة مع يقتبس واحد لا يعمل.
.
<string name="good_example">This is a \"good string\".</string>
<string name="bad_example">This is a "bad string".</string>
<!-- Quotes are stripped; displays as: This is a bad string. -->
<string name="bad_example_2">'This is another "bad string".'</string>
<!-- Causes a compile error -->
تنسيق السلاسل
إذا كنت بحاجة إلى تنسيق السلاسل الخاصة بك، ثم يمكنك القيام بذلك عن طريق وضع وسيطات الشكل الخاص بك في المورد سلسلة، كما هو موضح من قبل المثال المثال التالي.
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
في هذا المثال، تحتوي سلسلة التنسيق على وسيطتين: %1$s عبارة عن سلسلة و %2$d عبارة عن رقم عشري. ثم قم بتنسيق السلسلة عن طريق استدعاء getString(int, Object...) . فمثلا:
:
Resources res = getResources()
;
String text = res.getString(R.string.welcome_messages, username, mailCount);
التصميم باستخدام ترميز هتمل
يمكنك إضافة التصميم إلى السلاسل باستخدام ترميز هتمل. فمثلا:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome">Welcome to <b>Android</b>!</string>
</resources>
تتضمن عناصر هتمل المدعومة ما يلي:
<b> للنص الغامق .
<i> للنص المائل .
<u> للنص التسطير .
في بعض الحالات، قد تحتاج إلى إنشاء مورد نص على غرار يتم استخدامه أيضا سلسلة تنسيق. عادة، هذا لا يعمل لأن format(String, Object...) و getString(int, Object...) أساليب شريط كافة المعلومات نمط من السلسلة. العمل حول هذا هو كتابة علامات هتمل مع الكيانات الهروب، والتي يتم استردادها بعد ذلك مع fromHtml(String) ، بعد إجراء التنسيق. فمثلا:
تخزين مورد النص الذي تم تصميمه كسلسلة هتمل-تم إزالتها:
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
في هذه السلسلة المنسقة، تتم إضافة عنصر <b> . لاحظ أن قوس الافتتاح هو هتمل-هرب، باستخدام < الرموز.
ثم قم بتنسيق السلسلة كالمعتاد، ولكن أيضا استدعاء من fromHtml(String) لتحويل نص هتمل إلى نص على غرار:
Resources res = getResources()
;
String text = res.getString(R.string.welcome_messages, username, mailCount);
CharSequence styledText = Html.fromHtml(text);
لأن الأسلوب fromHtml(String) تنسيق كافة كيانات هتمل، تأكد من الهروب من أي حرف هتمل ممكن في السلاسل التي تستخدمها مع النص المنسق، باستخدام htmlEncode(String) . على سبيل المثال، إذا كنت تقوم بتنسيق سلسلة تحتوي على أحرف مثل "<" أو "&"، فيجب أن يتم fromHtml(String) قبل التنسيق، بحيث عندما يتم تمرير السلسلة المنسقة من خلال fromHtml(String) ، تخرج الأحرف كانت مكتوبة أصلا. فمثلا:
String escapedUsername = TextUtil.htmlEncode
(username);
Resources res = getResources()
;
String text = res.getString(R.string.welcome_messages, escapedUsername, mailCount);
CharSequence styledText = Html.fromHtml(text);
التصميم مع سبانابليز
A Spannable هو كائن نص يمكنك نمط مع خصائص محرف مثل اللون ووزن الخط. يمكنك استخدام SpannableStringBuilder لبناء النص الخاص بك ومن ثم تطبيق الأنماط المحددة في حزمة android.text.style إلى النص.
يمكنك استخدام أساليب المساعد التالية لإعداد جزء كبير من عمل إنشاء نص قابل للتشغيل:
/**
* Returns a CharSequence that concatenates the specified array of CharSequence
* objects and then applies a list of zero or more tags to the entire range.
*
* @param content an array of character sequences to apply a style to
* @param tags the styled span objects to apply to the content
* such as android.text.style.StyleSpan
*
*/
private static CharSequence apply(CharSequence[] content, Object... tags) {
SpannableStringBuilder text = new SpannableStringBuilder();
openTags(text, tags);
for (CharSequence item : content) {
text.append(item);
}
closeTags(text, tags);
return text;
}
/**
* Iterates over an array of tags and applies them to the beginning of the specified
* Spannable object so that future text appended to the text will have the styling
* applied to it. Do not call this method directly.
*/
private static void openTags(Spannable text, Object[] tags) {
for (Object tag : tags) {
text.setSpan(tag, 0, 0, Spannable.SPAN_MARK_MARK);
}
}
/**
* "Closes" the specified tags on a Spannable by updating the spans to be
* endpoint-exclusive so that future text appended to the end will not take
* on the same styling. Do not call this method directly.
*/
private static void closeTags(Spannable text, Object[] tags) {
int len = text.length();
for (Object tag : tags) {
if (len > 0) {
text.setSpan(tag, 0, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} else {
text.removeSpan(tag);
}
}
}
طرق bold ، italic ، color تظهر لك كيفية استدعاء طرق المساعد لتطبيق الأساليب المحددة في حزمة android.text.style . يمكنك إنشاء أساليب مماثلة للقيام أنواع أخرى من التصميم النص.
/**
* Returns a CharSequence that applies boldface to the concatenation
* of the specified CharSequence objects.
*/
public static CharSequence bold(CharSequence... content) {
return apply(content, new StyleSpan(Typeface.BOLD));
}
/**
* Returns a CharSequence that applies italics to the concatenation
* of the specified CharSequence objects.
*/
public static CharSequence italic(CharSequence... content) {
return apply(content, new StyleSpan(Typeface.ITALIC));
}
/**
* Returns a CharSequence that applies a foreground color to the
* concatenation of the specified CharSequence objects.
*/
public static CharSequence color(int color, CharSequence... content) {
return apply(content, new ForegroundColorSpan(color));
}
وإليك مثال على كيفية سلسلة هذه الأساليب لإنشاء تسلسل حرف مع أنواع مختلفة من التصميم تطبيقها على الكلمات الفردية:
:
// Create an italic "hello, " a red "world",
// and bold the entire sequence.
CharSequence text = bold(italic(res.getString(R.string.hello)),
color(Color.RED, res.getString(R.string.world)));
قلم المدقة
نمط الموارد
أنظر أيضا
الأنماط والمواضيع
يحدد مورد النمط التنسيق والبحث عن واجهة مستخدم. يمكن تطبيق نمط على View فردي (من داخل ملف تخطيط) أو إلى Activity كامل أو تطبيق (من داخل ملف البيان).
لمزيد من المعلومات حول إنشاء الأنماط وتطبيقها، يرجى قراءة الأنماط والموضوعات .
ملاحظة: نمط هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد النمط والموارد الأخرى البسيطة في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. سيتم استخدام name العنصر كرقم تعريف المورد.
مرجع الموارد:
في شمل: @[package:]style/ style_name
بناء الجمل
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name="style_name"
parent="@[package:]style/style_to_inherit">
<item
name="[package:]style_property_name"
>style_value</item>
</style>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<style>
يحدد نمط واحد. يحتوي على <item> عناصر.
الصفات:
name
سلسلة . مطلوب . اسم للنمط، والذي يتم استخدامه كرقم تعريف المورد لتطبيق النمط على طريقة عرض أو نشاط أو تطبيق.
parent
نمط المورد . الرجوع إلى النمط الذي يجب أن يرث هذا النمط خصائص النمط.
<item>
يحدد خاصية واحدة للنمط. يجب أن يكون طفلا لعنصر <style> .
الصفات:
name
مورد السمة . مطلوب . اسم الخاصية نمط ليتم تعريفها، مع البادئة حزمة إذا لزم الأمر (على سبيل المثال android:textColor ).
مثال:
ملف شمل للنمط (محفوظ في res/values/ ):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomText" parent="@style/Text">
<item name="android:textSize">20sp</item>
<item name="android:textColor">#008</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<EditText
style="@style/CustomText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />
المزيد من أنواع الموارد More Resource Types
تحدد هذه الصفحة المزيد من أنواع الموارد التي يمكنك إضفاء الطابع الخارجي عليها، بما في ذلك:
منطقي
مورد شمل الذي يحمل قيمة منطقية.
اللون
مورد شمل الذي يحمل قيمة اللون (لون سداسي عشري).
البعد
مورد شمل الذي يحمل قيمة البعد (مع وحدة قياس).
هوية شخصية
مورد شمل الذي يوفر معرفا فريدا لموارد التطبيق ومكوناته.
عدد صحيح
مورد شمل الذي يحمل قيمة عدد صحيح.
عدد صحيح
مورد شمل الذي يوفر مجموعة من الأعداد الصحيحة.
صفيف
مورد شمل الذي يوفر TypedArray (الذي يمكنك استخدامه TypedArray ).
منطقي
قيمة منطقية معرفة في شمل.
ملاحظة: بول هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في name المميزة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد بول مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. سيتم استخدام name العنصر <bool> كرقم تعريف المورد.
مرجع الموارد:
في جافا: R.bool. bool_name R.bool. bool_name
في شمل: @[ 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
سلسلة . اسم لقيمة البول. سيتم استخدام هذا الرقم التعريفي للمورد.
مثال:
ملف شمل المحفوظ في 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>يسترجع رمز التطبيق هذا منطقي::Resources res =
getResources()
;
boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);يستخدم تنسيق شمل هذا المنطقية لسمة::<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:src="@drawable/logo"
android:adjustViewBounds="@bool/adjust_view_bounds" />
Color
اللون
قيمة اللون المعرفة في شمل. يتم تحديد اللون بقيمة رغب وقناة ألفا. يمكنك استخدام مورد لون أي مكان يقبل قيمة اللون الست عشري. يمكنك أيضا استخدام مورد لون عند توقع مصدر قابل للرسم في شمل (على سبيل المثال، android:drawable="@color/green" ).
تبدأ القيمة دائما بحرف جنيه (#) ثم متبوعة بالمعلومات ألفا-ريد-غرين-بلو بأحد التنسيقات التالية:
# رغب
# أرجب
# رغغب
# أرجب
ملاحظة: اللون هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد الألوان مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/colors.xml
اسم الملف تعسفي. سيتم استخدام name العنصر <color> كرقم تعريف المورد.
مرجع الموارد:
في جافا: R.color. color_name R.color. color_name
في شمل: @[ package :]color/ color_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color
name="color_name"
>hex_color</color>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<color>
لون معبر عنه بالسداسي عشري، كما هو موضح أعلاه.
الصفات:
name
سلسلة . اسم للون. سيتم استخدام هذا الرقم التعريفي للمورد.
مثال:
ملف شمل المحفوظ في 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>يسترجع رمز التطبيق هذا مورد اللون::Resources res =
getResources()
;
int color = res.getColor
(R.color.opaque_red);يطبق تنسيق شمل هذا اللون على سمة::<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>
Dimension
البعد
قيمة البعد المعرفة في شمل. يتم تحديد البعد برقم متبوعا بوحدة قياس. على سبيل المثال: 10px، 2in، 5sp. ويدعم وحدات القياس التالية من قبل الروبوت:
dp
الكثافة المستقلة بكسل - وحدة مجردة التي تقوم على الكثافة المادية للشاشة. هذه الوحدات هي نسبة إلى 160 نقطة في البوصة (النقاط لكل بوصة) الشاشة، التي 1dp يساوي تقريبا 1px. عند التشغيل على شاشة ذات كثافة أعلى، يتم زيادة عدد وحدات البكسل المستخدمة لرسم 1dp من خلال عامل مناسب لشاشة نقطة في البوصة للشاشة. وبالمثل، عندما تكون على شاشة أقل كثافة، يتم تقليل حجم وحدات البكسل المستخدمة في 1dp. وسوف تتغير نسبة دب-تو-بيكسيل مع كثافة الشاشة، ولكن ليس بالضرورة في نسبة مباشرة. استخدام وحدات دب (بدلا من وحدات بكسل) هو الحل البسيط لجعل أبعاد العرض في التخطيط الخاص بك تغيير الحجم بشكل صحيح لكثافة الشاشة المختلفة. وبعبارة أخرى، فإنه يوفر الاتساق للأحجام في العالم الحقيقي من عناصر واجهة المستخدم الخاصة بك عبر الأجهزة المختلفة.
sp
بكسل مستقلة بكسل - وهذا هو مثل وحدة دب، ولكن يتم تحجيمها أيضا من قبل المستخدم حجم الخط تفضيل. فمن المستحسن استخدام هذه الوحدة عند تحديد أحجام الخط، لذلك سيتم تعديلها لكلا من كثافة الشاشة وتفضيل المستخدم.
pt
نقاط - 1/72 من بوصة على أساس الحجم المادي للشاشة، على افتراض 72dpi كثافة الشاشة.
px
بكسل - يتوافق مع بكسل الفعلية على الشاشة. ولا يوصى باستخدام وحدة القياس هذه لأن التمثيل الفعلي يمكن أن يتفاوت عبر الأجهزة؛ قد يكون لكل جهاز عدد مختلف من وحدات البكسل لكل بوصة، وقد يكون عدد وحدات البكسل المتاحة على الشاشة أكثر أو أقل.
mm
مليمتر - بناء على الحجم المادي للشاشة.
in
بوصة - بناء على الحجم المادي للشاشة.
ملاحظة: البعد هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). وعلى هذا النحو، يمكنك دمج موارد الأبعاد مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. سيتم استخدام name العنصر <dimen> كرقم تعريف المورد.
مرجع الموارد:
في جافا: R.dimen. dimension_name R.dimen. dimension_name
في شمل: @[ package :]dimen/ dimension_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen
name="dimension_name"
>dimension</dimen>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<dimen>
بعد، يمثله تعويم، متبوعا بوحدة قياس (دب، سب، بت، بس، مم، إن)، كما هو موضح أعلاه.
الصفات:
name
سلسلة . اسم للبعد. سيتم استخدام هذا الرقم التعريفي للمورد.
مثال:
ملف شمل المحفوظ في 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>يسترجع رمز التطبيق هذا بعدا::Resources res =
getResources()
;
float fontSize = res.getDimension
(R.dimen.font_size);يطبق تنسيق شمل هذا أبعادا على السمات::<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>
ID
هوية شخصية
معرف مورد فريد محدد في شمل. باستخدام الاسم الذي تقدمه في <item> R.java <item> ، تنشئ أدوات مطوري برامج أندرويد عددا صحيحا فريدا في فئة R.java ، والتي يمكنك استخدامها R.java لموارد التطبيق (على سبيل المثال، View في تخطيط واجهة المستخدم) أو عدد صحيح فريد للاستخدام في شفرة التطبيق (على سبيل المثال، كمعرف لمربع حوار أو رمز نتيجة).
ملاحظة: معرف هو مورد بسيط المشار إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك دمج موارد المعرف مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد. تذكر أيضا أن موارد معرف لا تشير إلى عنصر مورد فعلي؛ هو مجرد معرف فريد من نوعه يمكنك إرفاقها إلى موارد أخرى أو استخدام عدد صحيح فريد في التطبيق الخاص بك.
مكان الملف:
res/values/ filename.xml
اسم الملف تعسفي.
مرجع الموارد:
في جافا: R.id. name R.id. name
في شمل: @[ package :]id/ name
بناء الجملة:
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<item>
يحدد معرفا فريدا. لا قيمة، سمات فقط.
الصفات:
type
يجب أن يكون "إد".
name
سلسلة . اسم فريد للمعرف.
مثال:
ملف شمل المحفوظ في 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 android:id="@id/button_ok"
style="@style/button_style" />لاحظ أن android:id قيمة android:id لا تتضمن علامة زائد في مرجع معرف، لأن معرف موجود بالفعل، كما هو محدد في المثال ids.xml أعلاه. (عند تحديد معرف لمصدر شمل باستخدام تسجيل الدخول بلوس بتنسيق android:id="@+id/name" نيم android:id="@+id/name" ، يعني ذلك أن معرف "الاسم" غير موجود ويجب إنشاؤه.)وكمثال آخر، يستخدم مقتطف الشفرة التالي معرف "dialog_exit" كمعرف فريد لمربع حوار::showDialog
(R.id.dialog_exit);في نفس التطبيق، تتم مقارنة المعرف "dialog_exit" عند إنشاء مربع حوار:protected Dialog
onCreateDialog(int)
(int id) {
Dialog dialog;
switch(id) {
case R.id.dialog_exit:
...
break;
default:
dialog = null;
}
return dialog;
}
Integer
عدد صحيح
تم تعريف عدد صحيح في شمل.
ملاحظة: عدد صحيح هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين الموارد الصحيحة مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename.xml
اسم الملف تعسفي. سيتم استخدام name العنصر <integer> كرقم تعريف المورد.
مرجع الموارد:
في جافا: R.integer. integer_name R.integer. integer_name
في شمل: @[ package :]integer/ integer_name
بناء الجملة:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer
name="integer_name"
>integer</integer>
</resources>
عناصر:
<resources>
مطلوب. يجب أن تكون هذه العقدة الجذر.
لا توجد سمات.
<integer>
عدد صحيح.
الصفات:
name
سلسلة . اسم للعدد الصحيح. سيتم استخدام هذا الرقم التعريفي للمورد.
مثال:
ملف شمل المحفوظ في 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>يسترجع رمز التطبيق هذا عددا صحيحا: :Resources res =
getResources()
;
int maxSpeed = res.getInteger
(R.integer.max_speed);
Integer Array
عدد صحيح
مجموعة من الأعداد الصحيحة المعرفة في شمل.
ملاحظة: مصفوفة عدد صحيح هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المتوفرة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد مصفوفة عدد صحيح مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. سيتم استخدام name العنصر <integer-array> كمعرف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى مجموعة من الأعداد الصحيحة.
مرجع الموارد:
في جافا: R.array. integer_array_name R.array. integer_array_name
في شمل: @[ package :]array. integer_array_name @[ 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> .
لا توجد سمات.
مثال:
ملف شمل المحفوظ في 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>يسترجع رمز التطبيق هذا الصفيف الصحيح::Resources res =
getResources()
;
int[] bits = res.getIntArray
(R.array.bits);
Typed Array
صفيف
تعريف TypedArray في شمل. يمكنك استخدام هذا لإنشاء مجموعة من الموارد الأخرى، مثل دراوابلز. لاحظ أن المصفوفة غير مطلوب أن تكون متجانسة بحيث يمكنك إنشاء مجموعة من أنواع الموارد المختلطة ولكن يجب أن تكون على بينة من أين وأين أنواع البيانات في المصفوفة بحيث يمكنك الحصول بشكل صحيح على كل بند مع TypedArray ' s get...() أساليب.
ملاحظة: صفيف مكتوب هو مورد بسيط يتم الرجوع إليه باستخدام القيمة المقدمة في السمة نيم (وليس اسم ملف شمل). على هذا النحو، يمكنك الجمع بين موارد الصفوف المكتوبة مع موارد بسيطة أخرى في ملف شمل واحد، ضمن عنصر <resources> واحد.
مكان الملف:
res/values/ filename .xml
اسم الملف تعسفي. سيتم استخدام name العنصر <array> كمعرف المورد.
تجميع نوع بيانات الموارد:
مؤشر الموارد إلى TypedArray .
مرجع الموارد:
في جافا: R.array. array_name R.array. array_name
في شمل: @[ package :]array. array_name @[ 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> .
لا توجد سمات.
مثال:
ملف شمل المحفوظ في 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>
يسترجع رمز التطبيق هذا كل صفيف ثم يحصل على الإدخال الأول في كل صفيف:
:
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);