لمحة عن الصور المخصّصة

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

مثال على صورة مقصوصة في الوضع العمودي
الشكل 1. مثال على قصاصة في وضع "بورتريه"
مثال على صورة مقصوصة في الوضع الأفقي
الشكل 2 مثال على صورة مقصوصة في الوضع الأفقي

يتيح نظام التشغيل Android استخدام الشاشات ذات الفتحات على الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. ومع ذلك، يمكن لمصنّعي الأجهزة أيضًا توفير إمكانية استخدام القطع على الشاشة في الأجهزة التي تعمل بالإصدار 8.1 من نظام التشغيل Android أو إصدارات أقدم.

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

حالة تلقائية

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

التطبيقات التي تستهدف المستوى 35 من واجهة برمجة التطبيقات أو الإصدارات الأحدث على الأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android أو الإصدارات الأحدث، أو الأنشطة التي تستدعي enableEdgeToEdge، يتم عرضها في منطقة القطع.

بعبارة أخرى، يتم تفسير LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT وLAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES وLAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER على أنّها LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS للنوافذ غير العائمة في التطبيقات التي تستهدف المستوى 35 من واجهة برمجة التطبيقات أو المستويات الأحدث على الأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android أو الإصدارات الأحدث.

التعامل مع معلومات القطع يدويًا

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

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

Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) {
    drawRect(Color.Red, style = Stroke(2.dp.toPx()))
}