<supports-devices>

بناء الجملة:
<supports-screens android:resizeable=["true"| "false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>
مضمّنة في:
<manifest>
description:

يتيح لك تحديد أحجام الشاشات التي يدعمها تطبيقك وتمكين وضع توافق الشاشة للشاشات الأكبر من التي يدعمها تطبيقك. من المهم أن تستخدم هذا العنصر دائمًا في تطبيقك لتحديد أحجام الشاشة التي يدعمها تطبيقك.

ملاحظة: وضع توافق الشاشة ليس وضعًا تريد تشغيل تطبيقك فيه. تتسبب في حدوث تقطيعات وتمويه في واجهة المستخدم بسبب التكبير أو التصغير. الطريقة الصحيحة لجعل تطبيقك يعمل بشكل جيد على الشاشات الكبيرة هي اتّباع نظرة عامة على توافق الشاشة وتوفير تنسيقات بديلة لأحجام الشاشات المختلفة.

"يدعم" التطبيق حجم شاشة معين إذا تم تغيير حجمه بشكل صحيح لملء الشاشة بأكملها. إن تغيير الحجم العادي الذي يطبقه النظام يعمل بشكل جيد مع معظم التطبيقات، ولن تحتاج إلى القيام بأي عمل إضافي لجعل التطبيق يعمل على شاشات أكبر من جهاز الهاتف.

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

ومع ذلك، إذا لم يعمل تطبيقك بشكل جيد عند تغيير حجمه ليتناسب مع أحجام الشاشات المختلفة، يمكنك استخدام سمات العنصر <supports-screens> لتحديد ما إذا كان سيتم توزيع التطبيق على الشاشات الأصغر حجمًا أو إذا أردت تكبير حجم واجهة المستخدم أو "تكبيره" ليتناسب مع الشاشات الأكبر حجمًا باستخدام وضع التوافق مع الشاشة في النظام.

إذا لم تصمم لأحجام شاشات أكبر ولم تحقق عملية تغيير الحجم العادية النتائج المناسبة، فسيعمل وضع توافق الشاشة على ضبط واجهة المستخدم عن طريق محاكاة شاشة ذات حجم عادي وكثافة متوسطة. ثم يكبّر حتى يملأ الشاشة بأكملها. انتبه إلى أن هذا يؤدي إلى تقطيع وتمويه واجهة المستخدم، لذا من الأفضل أن تقوم بتحسين واجهة المستخدم للشاشات الكبيرة.

ملاحظة: قدم Android 3.2 سمات جديدة: android:requiresSmallestWidthDp وandroid:compatibleWidthLimitDp وandroid:largestWidthLimitDp. إذا كنت تطور تطبيقك للإصدار 3.2 من نظام التشغيل Android أو الإصدارات الأحدث، فاستخدم هذه السمات للإعلان عن توافق حجم الشاشة بدلاً من السمات بناءً على أحجام الشاشة العامة.

لمحة عن وضع التوافق مع الشاشة

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

في إصدارات Android من 1.6 إلى 3.1، يشغّل النظام تطبيقك في نافذة "طوابع بريدية". ويحاكي هذا الوضع شاشة بدقة 320 بكسل × 480 بكسل مستقل الكثافة ذات حدود سوداء تملأ المساحة المتبقية من الشاشة.

في الإصدار 3.2 من نظام التشغيل Android والإصدارات الأحدث، يرسم النظام التنسيق كما هو الحال على الشاشة التي تبلغ دقتها 320 بكسل مستقل الكثافة x 480 بكسل مستقل الكثافة، ثم يضبط حجمه على الشاشة بملء الشاشة. يؤدي هذا غالبًا إلى حدوث تشويش في واجهة المستخدم، مثل التمويه والتقطيع.

للاطّلاع على مزيد من المعلومات حول طريقة التوافق مع أحجام الشاشات المختلفة بشكل سليم كي تتجنّب استخدام وضع توافق الشاشة مع تطبيقك، يمكنك قراءة مقالة نظرة عامة على توافق الشاشة.

السمات:
android:resizeable
يشير هذا الإعداد إلى ما إذا كان التطبيق قابلاً لتغيير الحجم ليناسب أحجام الشاشات المختلفة. هذه السمة هي "true" بشكل تلقائي. في حال ضبط السياسة على "false"، يشغِّل النظام تطبيقك في وضع توافق الشاشة على الشاشات الكبيرة.

تم إيقاف هذه السمة نهائيًا. تم تقديمه للمساعدة في انتقال التطبيقات من Android 1.5 إلى 1.6، عندما تم تقديم الدعم لشاشات متعددة لأول مرة. لا تستخدمها.

android:smallScreens
تشير إلى ما إذا كان التطبيق يتوافق مع عوامل شكل الشاشة "الصغيرة". الشاشة الصغيرة هي شاشة ذات نسبة عرض إلى ارتفاع أصغر من الشاشة "العادية"، أو شاشة HVGA التقليدية. هناك تطبيق لا يتوافق مع الشاشات الصغيرة غير متاح للأجهزة ذات الشاشات الصغيرة من خدمات خارجية، مثل Google Play، لأنّه ليس بإمكان النظام الأساسي تنفيذ هذا التطبيق على الشاشة الأصغر حجمًا. هذه القيمة هي "true" تلقائيًا.
android:normalScreens
تشير إلى ما إذا كان التطبيق يتوافق مع عوامل شكل الشاشة "العادية". في العادة، تُعتبر هذه الشاشة متوسطة الكثافة لشاشة HVGA، لكنّ WQVGA منخفض الكثافة وشاشة WVGA عالية الكثافة تُعتبر أيضًا شاشة عادية أيضًا. هذه السمة هي "true" تلقائيًا.
android:largeScreens
تشير إلى ما إذا كان التطبيق يتوافق مع عوامل شكل الشاشة "الكبيرة". الشاشة الكبيرة هي شاشة أكبر بكثير من شاشة الهاتف "العادية". وبالتالي قد يتطلب الأمر بعض العناية الخاصة من جانب التطبيق للاستفادة منه بشكل جيد، على الرغم من أنه قد يعتمد على تغيير الحجم من خلال النظام لملء الشاشة.

تختلف القيمة التلقائية لهذه السمة بين بعض الإصدارات، لذا من الأفضل أن أعلنت بوضوح عن هذه السمة. ويجب الانتباه إلى أنّ ضبطه على "false" يؤدي بشكل عام إلى تفعيل وضع التوافق مع الشاشة.

android:xlargeScreens
تشير إلى ما إذا كان التطبيق يتوافق مع عوامل نماذج الشاشة "الكبيرة جدًا". الشاشة الكبيرة جدًا هي شاشة أكبر بكثير من الشاشة "الكبيرة"، مثل شاشة جهاز لوحي أو جهاز أكبر حجمًا. وقد يتطلب الأمر عناية خاصة من جانب التطبيق للاستفادة منه بشكل جيد، على الرغم من أنه قد يعتمد على تغيير الحجم من قِبل النظام لملء الشاشة.

تختلف القيمة التلقائية لهذه السمة بين بعض الإصدارات، لذا من الأفضل أن أعلنت بوضوح عن هذه السمة. ويجب الانتباه إلى أنّ ضبطه على "false" يؤدي بشكل عام إلى تفعيل وضع التوافق مع الشاشة.

تم تقديم هذه السمة في المستوى 9 من واجهة برمجة التطبيقات.

android:anyDensity
يشير هذا الإعداد إلى ما إذا كان التطبيق يتضمّن موارد لتلائم أي كثافة شاشة.

بالنسبة إلى التطبيقات التي تتوافق مع Android 1.6 (المستوى 4 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم استخدام "true" تلقائيًا. لا تضبطه على "false" إلا إذا كنت متأكدًا تمامًا من أنه ضروري لعمل التطبيق. قد يكون من الضروري فقط تعطيل هذا إذا كان التطبيق يعالج الصور النقطية بشكل مباشر. لمزيد من المعلومات، يُرجى الاطِّلاع على نظرة عامة على توافق الشاشة.

android:requiresSmallestWidthDp
يحدد هذا الإعداد الحد الأدنى من smallestWidth المطلوب للتطبيق. smallestWidth هو أقصر بُعد في مساحة الشاشة، في وحدات dp، والتي يجب أن تكون متاحة لواجهة مستخدم التطبيق. أي أنها أقصر بين بُعدين للشاشة المتاحة.

حتى يتم اعتبار الجهاز متوافقًا مع تطبيقك، يجب أن تكون قيمة smallestWidth للجهاز مساوية لهذه القيمة أو أكبر منها. عادةً ما تكون القيمة التي تقدمها لهذا هي "أصغر عرض" يدعمه التخطيط الخاص بك، بغض النظر عن اتجاه الشاشة الحالي.

على سبيل المثال، تبلغ نسبة smallestWidth من 320 بكسل مستقل الكثافة في شاشة الهاتف المحمول النموذجية، بينما يبلغ دقة smallestWidth في الجهاز اللوحي مقاس 7 بوصة، 600 بكسل مستقل الكثافة، والجهاز اللوحي 10 بوصات يبلغ smallestWidth 720 بكسل مستقل الكثافة. وهذه القيم هي بصفة عامة smallestWidth لأنّها أقصر بُعد في المساحة المتاحة للشاشة.

يأخذ الحجم الذي تتم مقارنة القيمة به في الاعتبار زخارف الشاشة وواجهة مستخدم النظام. على سبيل المثال، إذا كان الجهاز يحتوي على بعض العناصر الدائمة في واجهة المستخدم على الشاشة، يُعلن النظام أن قيمة smallestWidth على الجهاز أصغر من حجم الشاشة الفعلي، لأنّ هذه وحدات بكسل الشاشة غير متاحة لواجهة المستخدم.

إذا تم تغيير حجم التطبيق بشكل صحيح ليتناسب مع أحجام الشاشة الأصغر، لن تحتاج إلى استخدام هذه السمة، سواء اخترت الحجم "الصغير" أو الحد الأدنى للعرض وهو 320 بكسل مستقل الكثافة. وبخلاف ذلك، استخدِم قيمة لهذه السمة تتطابق مع أصغر قيمة يستخدمها تطبيقك مع مؤهِّل عرض الشاشة الأصغر (sw<N>dp).

تنبيه: لا يهتم نظام Android بهذه السمة، لذلك لا تؤثر في طريقة عمل تطبيقك في وقت التشغيل. بل يتم استخدامه بدلاً من ذلك لتفعيل الفلترة في تطبيقك على خدمات مثل Google Play. مع ذلك، لا يتيح Google Play حاليًا استخدام هذه السمة للفلترة على الإصدار 3.2 من نظام التشغيل Android، لذا يمكنك مواصلة استخدام سمات الحجم الأخرى إذا كان تطبيقك لا يتوافق مع الشاشات الصغيرة.

تم تقديم هذه السمة في المستوى 13 من واجهة برمجة التطبيقات.

android:compatibleWidthLimitDp
تتيح لك هذه السمة تفعيل وضع توافق الشاشة كميزة اختيارية للمستخدم، وذلك من خلال تحديد الحد الأقصى "لأصغر عرض للشاشة" الذي تم تصميم تطبيقك من أجله. إذا كان أصغر جانب من الشاشة المتاحة للجهاز أكبر من القيمة هنا، لا يزال بإمكان المستخدمين تثبيت التطبيق ولكن يُسمح لهم بتشغيله في وضع توافق الشاشة.

يكون وضع التوافق غير مفعّل تلقائيًا، ويتم تغيير حجم التنسيق ليلائم الشاشة كالمعتاد. يتوفر زر في شريط النظام يتيح للمستخدم التبديل بين وضع توافق الشاشة.

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

ملاحظة: في الوقت الحالي، يحاكي وضع توافق الشاشة شاشات الهاتف المحمول التي يكون عرضها 320 بكسل مستقل الكثافة فقط، لذلك لا يتم تطبيق وضع توافق الشاشة إذا كانت قيمة android:compatibleWidthLimitDp أكبر من 320.

تم تقديم هذه السمة في المستوى 13 من واجهة برمجة التطبيقات.

android:largestWidthLimitDp
تتيح لك هذه السمة فرض تفعيل وضع توافق الشاشة من خلال تحديد الحد الأقصى لـ "أصغر عرض للشاشة" الذي تم تصميم تطبيقك من أجله. إذا كان أصغر جانب من شاشة الجهاز المتاحة أكبر من القيمة الموجودة هنا، يتم تشغيل التطبيق في وضع توافق الشاشة، ولا يمكن للمستخدم إيقافه.

إذا كان تطبيقك متوافقًا مع جميع أحجام الشاشات وتم تغيير حجم تخطيطه بشكل صحيح، فلن تحتاج إلى استخدام هذه السمة. وإذا لم تكن كذلك، يمكنك أولاً استخدام السمة android:compatibleWidthLimitDp. لا تستخدم السمة android:largestWidthLimitDp إلا عندما يكون تطبيقك معطّلاً وظيفيًا عند تغيير حجمه ليتوافق مع الشاشات الأكبر حجمًا، وعندما يكون وضع التوافق مع الشاشة هو الطريقة الوحيدة التي يمكن استخدام تطبيقك بها.

ملاحظة: في الوقت الحالي، يحاكي وضع توافق الشاشة شاشات الهاتف المحمول التي يكون عرضها 320 بكسل مستقل الكثافة فقط، لذلك لا يتم تطبيق وضع توافق الشاشة إذا كانت قيمة android:largestWidthLimitDp أكبر من 320.

تم تقديم هذه السمة في المستوى 13 من واجهة برمجة التطبيقات.

تم تقديمه في:
المستوى 4 لواجهة برمجة التطبيقات
راجِع أيضًا: