تصميم Material You

بدءًا من Android 12، يركز تصميم Material You على التعبير عن الذات والسلاسة في نظام التشغيل Android، بهدف مساعدة المستخدمين في إنشاء تجربة متماسكة واحدة تلبي احتياجاتهم. بصفتك شريكًا في Android، ننصحك بدمج تصميم Material You في أجهزة Android في الجوانب التالية:

  • ألوان ديناميكية
  • الحركة
  • التطبيقات المصغَّرة

ألوان ديناميكية

يشكّل اللون الديناميكي العنصر الرئيسي في تصميم Material You، وهو جزء أساسي من استراتيجية Android المتعدّدة السنوات التي تهدف إلى توفير ميزات تخصيص أبسط وأدق لمستخدمي Android بطريقة لا تتوفّر في أي أجهزة أخرى. يوفّر نظام Material You ما يلي:

  • يوفّر للمستخدمين والمطوّرين تجربة تخصيص متسقة وغنية في أي جهاز Android.

  • إتاحة فرص لشركات المصنّعين الأصليّين للأجهزة التي تعمل بنظام التشغيل Android لمواصلة ابتكار واجهة المستخدم للنظام والتطبيقات التابعة للجهة المصنّعة بطريقة تتوافق مع الأجهزة والعلامة التجارية من حيث اللون والشكل والتصميم

للاستفادة من ميزة "الألوان الديناميكية"، استخدِم قصة استخراج الألوان في Material You في Android 12 كجزء أساسي من عرضك البرمجي للمستخدمين. على الجهاز، استخدِم منطق استخراج الألوان المتوفّر في AOSP، خاصةً المنطق الذي يأخذ لونًا واحدًا من مصدر الخلفية أو المظهر ويعرضه من خلال 65 واجهة برمجة تطبيقات للألوان. لمعرفة متطلبات الألوان الديناميكية، يُرجى الاطّلاع على مقالة استخدام ميزة "الألوان الديناميكية".

يتضمّن تدفق الألوان الديناميكي الكامل أربع خطوات، كما هو موضّح أدناه:

تدفق ألوان Material You

الشكل 1: ألوان Material You الديناميكية

  1. يغيّر المستخدم الخلفية أو المظهر من خلال أداة اختيار المصنّع الأصلي للجهاز.

  2. يختار المستخدم أحد الخيارات التالية:

    • مظهر الجهاز: عند اختيار أحد الخيارات، يختار Android تلقائيًا لونًا واحدًا من مصدر واحد يستوفي المتطلبات.

    • خلفية وتصميم جديدان عند اختياره، يختار منطق AOSP تلقائيًا لون مصدر واحد من الخلفية المحدّدة.

  3. تقوم AOSP بتوسيع لون المصدر الفردي إلى 5 لوحات ألوان مع 13 متغير لوني لكل منها، وفقًا لمنطق AOSP، الذي يملأ بعد ذلك سمات الألوان البالغ عددها 65.

  4. يستخدم واجهة مستخدم التطبيق 65 سمة لون بطريقة متّسقة في منظومة تطبيقات Android المتكاملة. ننصحك باستخدام لوحة الألوان نفسها لواجهة مستخدم نظام الجهاز والتطبيقات الخاصة بصانعي الأجهزة الأصليين.

تصحيحات Android 12

للحصول على المنطق الكامل لاستخراج ألوان الخلفية، ولتمكين الجهاز من ملء واجهات برمجة التطبيقات التي تتضمّن 65 لونًا بطريقة متوافقة مع المنظومة المتكاملة، أدرِج الإصلاحات التالية في عملية تنفيذ Android 12:

تحديد ألوان مخصّصة في ThemePicker

إذا كنت تستخدم تطبيق ThemePicker من AOSP، يعرض تطبيق WallpaperPicker قسم الألوان في حال استيفاء كلا الشرطَين التاليَين:

  • flag_monet في frameworks/base/packages/SystemUI/res/values/flags.xml هو true.
  • تم تحديد الرمز البرمجي الأساسي لحزمة APK للنظام الذي يتضمّن اسم الحزمة في ملف themes_stub_package في ملف packages/apps/ThemePicker/res/values/override.xml.

تنسيق Stub APK

يمكن العثور على نموذج لإصدار APK هذا في packages/apps/ThemePicker/themes.

يجب أن يحتوي ملف APK هذا على مَراجع فقط، مع توضيح الألوان الأساسية وأسماءها المتاحة.

يجب أن يحتوي العنصر المقتطف على ملف XML ضمن res/xml بالتنسيق التالي:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="color_bundles">
        <item>color1</item>
        <item>color2</item>
        <item>color3</item>
        <item>color4</item>
    </array>

    <string name="bundle_name_color1">Blue</string>
    <string name="bundle_name_color2">Red</string>
    <string name="bundle_name_color3">Yellow</string>
    <string name="bundle_name_color4">Green</string>

</resources>

في هذا الملف، يكون لكل item ضمن color_bundles اسم مميّز، ما دامت السلاسل أدناه تحمل اسم bundle_name_item.

يجب أن تتوفّر سلسلة bundle_name_item لكل لون، مع اسم وصفي لكل لون. ويمكن ترجمة هذه السلاسل عن طريق إضافة السلاسل المترجَمة المقابلة إلى أدلة res/values-language code.

يمكن أن تكون قيم الألوان الفعلية في ملف XML نفسه أو في ملف موارد XML منفصل بصيغة:

<resources>
    <color name="color_primary_color1">#0000FF</color>
    <color name="color_secondary_color1">#0000FF</color>

    <color name="color_primary_color2">#ff0000</color>
    <color name="color_secondary_color2">#ff0000</color>

    <color name="color_primary_color3">#ffff00</color>
    <color name="color_secondary_color3">#ffff00</color>

    <color name="color_primary_color4">#00ff00</color>
    <color name="color_secondary_color4">#00ff00</color>
</resources>

لكل عنصر في مصفوفة حِزم الألوان، يجب أن يكون هناك إدخالان color_primary_item وcolor_secondary_item (ويجب أن يكون كلا اللونَين متطابقَين). قيم هذه color الإدخالات هي رموز الألوان الفعلية لكل لون ليظهر في قسم اللون الأساسي.

الخطوة 1: إنشاء تجربة حسب تصاميم المستخدم

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

  • عند استخدام أداة اختيار خلفية، تكون ميزة استخراج ألوان الخلفية مفعّلة تلقائيًا. ومع ذلك، يمكنك إجراء بعض التخصيصات على أداة الاختيار لتقديم المزيد من options للمستخدم.

الخطوة 2: استخراج لون الخلفية إلى لون مصدر

لتفعيل ميزة "استخراج ألوان الخلفية"، عليك اختيار رموز تصحيح Android 12 المذكورة أعلاه (سيتم تفعيل هذه الوظيفة تلقائيًا في إصدار مستقبلي من AOSP). يبدأ منطق AOSP الذي يؤدي إلى استخراج الخلفية من frameworks/base/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java، في ThemeOverlayController#mOnColorsChangedListener، من خلال WallpaperManager#onWallpaperColorsChanged. ننصحك باستخدام منطق AOSP غير المعدَّل لضمان تجربة تطوير متّسقة.

ويختار المنطق تلقائيًا أعلى لون تكرار مناسب للاستخدام. للاستفادة من ألوان المصدر الأخرى التي تعرضها الخوارزمية وعرض هذه الألوان للمستخدمين في أداة اختيار المظهر، استخدِم ColorScheme#getSeedColors(wallpaperColors: WallpaperColors).

لكي يكون اللون المصدر مناسبًا للاستخدام، يجب أن يكون الحد الأدنى لقيمة CAM16 للتشبع 5، سواء كان اللون المستخرَج من الخلفية أو من أحد الإعدادات المُعدّة مسبقًا التي يختارها المستخدم. يضمن ذلك عدم تأثُّر اللون المصدر بالدرجات الخفيفة للألوان الداكنة عند تحويله من لون واحد إلى 65 لونًا نغميًا، ويظل يمثّل اختيار المستخدم. لقراءة الألوان وتعديلها في CAM16، استخدِم Cam#fromInt أو Cam#getInt.

استخدام لوحة ألوان غير ديناميكية بالنسبة إلى الأجهزة التي لا تتيح استخراج ألوان الخلفية، يمكنك التأكد من أنّ تطبيقات Google والتطبيقات التابعة لجهات خارجية التي تتيح استخدام الألوان الديناميكية تبدو رائعة عن طريق اتّباع الخطوات التالية:

  • استخدِم لوحة ألوان Material التلقائية عن طريق إيقاف flag_monet في frameworks/base/packages/SystemUI/res/values/flags.xml.
  • تأكَّد من أنّه لا يزال بإمكان المستخدمين تخصيص نظام التشغيل باستخدام أداة اختيار مظاهر مُعدّة مسبقًا.

الخطوة 3: توسيع نطاق اللون المصدر إلى واجهات برمجة تطبيقات الألوان

باستخدام لون المصدر الواحد المستمَد من الخطوة السابقة، ينشئ نظام التشغيل Android 5 لوحات ألوان فريدة (لوحة ألوان مميزة من 1 إلى 3 ولوحة ألوان محايدة من 1 إلى 2)، وتحتوي كل لوحة على 13 لونًا، ويحتوي كل لون على قيم مختلفة للسطوع (من 0 إلى 1000)، ليصبح المجموع هو 65 لونًا. يعمل المنطق الوارد في رموز تصحيح Android 12 على تنفيذ توسيع اللون هذا بشكل صحيح، وتصف التفاصيل الواردة أدناه عملية التنفيذ.

لضمان اتساق المطوّرين، يجب أن تستند لوحات الألوان الخمس (accent1 وaccent2 وaccent3 وneutral1 وneutral2) والألوان الـ 13 المقابلة لها إلى لون مصدر واحد مع إجراء التغييرات ذات الصلة على قيم تشبع ودرجة لون CAM16 كما هو موضّح أدناه:

  • system_accent1

    • التشبع: استخدِم القيمة ‎40 لصيغ الألوان التي تنتهي بالأرقام 0، 10، 50، و 100، وإلا استخدِم القيمة ‎48.
    • درجة اللون: نفسها في المصدر
  • system_accent2

    • كثافة اللون: استخدِم "16"
    • درجة اللون: نفسها في المصدر
  • system_accent3

    • كثافة اللون: استخدِم "32"
    • تدرُّج الألوان: تدوير بمقدار 60 درجة موجبة
  • system_neutral1

    • درجة التشبّع: استخدِم "4".
    • درجة اللون: نفسها في المصدر
  • system_neutral2

    • ‫Chroma: استخدِم "8"
    • درجة اللون: نفسها في المصدر

تتضمّن CTS اختبارات للتحقّق من صحة طلبات البيانات من واجهة برمجة التطبيقات الخاصة بألوان السطوع وألوان hue. للتشغيل، استخدِم atest SystemPalette.

الخطوة 4: استخدام الألوان الديناميكية في التطبيقات وواجهة مستخدم النظام

بعد تعيين الألوان الديناميكية على الجهاز، تتبع التطبيقات إرشادات المواد لاستخدام الألوان. من المقرّر طرح إرشادات Material Design على material.io بحلول 26 تشرين الأول (أكتوبر) 2021 لكي تتمكّن التطبيقات التابعة لجهات خارجية من استخدامها. بالنسبة إلى "واجهة مستخدم النظام" وتطبيقات الطرف الأول، ننصح بشدة بدمج الألوان الديناميكية في تجربة المستخدم بطريقة تناسب الأجهزة والعلامة التجارية وتساعدك على التفريق بين أجهزتك.

للحصول على إرشادات عامة حول الألوان الديناميكية، يُرجى الاطّلاع على ما يلي:

  • استخدِم ألوانًا مميزة للعناصر في المقدّمة في التطبيقات وواجهة مستخدم النظام:

    @android:color/system_accent1_0 … 1000 // most-used foreground color group
    @android:color/system_accent2_0 … 1000 // alternate accent, used for surfaces
    @android:color/system_accent3_0 … 1000 // playful, analogous color
    
  • استخدِم ألوانًا محايدة لعناصر الخلفية في التطبيقات وواجهة مستخدم النظام:

    @android:color/system_neutral1_0 … 1000 // most-used background color group
    @android:color/system_neutral2_0 … 1000 // used for higher-elevation surfaces
    

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

الخطوة 5: إضافة خيارات الألوان الديناميكية في عملية تنفيذ AOSP WallpaperPicker

الإصدار المتوافق مع Android 13 والإصدارات الأحدث

اعتبارًا من الإصدار 13 من Android، تم إيقاف android.theme.customization.accent_color نهائيًا. تمت إضافة سمة جديدة android.theme.customization.theme_style للسماح بأشكال مختلفة من الألوان. لدينا حاليًا أربعة صِيغ في قاعدة البيانات على النحو التالي:

TONAL_SPOT = Default Material You theme since Android S.
VIBRANT = Theme where accent 2 and 3 are analogous to accent 1.
EXPRESSIVE = Highly chromatic theme.
SPRITZ = Desaturated theme, almost grayscale.

ويتم إرسالها إلى Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES، كما هو موضح في ملف JSON أدناه:

{
    "android.theme.customization.system_palette":"B1611C",
    "android.theme.customization.theme_style":"EXPRESSIVE"
}

إصدار متوافق مع الإصدار 12 من نظام التشغيل Android والإصدارات الأقدم

عند استخدام أداة اختيار مخصّصة للمظاهر، يجب أن يرسل الجهاز لون مصدر صالحًا إلى Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES من خلال تقديم ملف JSON بالتنسيق التالي (حيث يكون 746BC1 مثالاً على لون مصدر صالح):

{
      "android.theme.customization.system_palette":"746BC1",
      "android.theme.customization.accent_color":"746BC1"
}

يؤدي إجراء ذلك إلى تخطّي عملية استخراج ألوان الخلفية (الخطوة 2) وتوسيع اللون المصدر المقدَّم مباشرةً إلى 65 سمة لون (الخطوة 3).

الخطوة 6: إرسال طلب الدعم

بالإضافة إلى دمج النظام، عليك إرسال طلب وإطلاعنا على اسم علامتك التجارية (Build.MANUFACTURER). بما أنّ معظم التطبيقات التابعة لجهات خارجية تستخدم مكونات Material لنظام التشغيل Android لعرض الألوان الديناميكية، فإنّنا نستخدم قائمة مسموح بها مضمّنة في الرمز البرمجي لتحديد الأجهزة التي دمجت ميزة لوحات الألوان الديناميكية.

الحركة

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

استخدام ميزة التمرير السريع في نظام التشغيل

يتضمّن Android 12 حركة التمرير السريع الديناميكية التي تستجيب بشكلٍ أفضل في شكل تمديد العرض، والتي تظهر عندما يحاول المستخدم التمرير بشدّة إلى ما بعد حافة القائمة. في ما يلي مثال:

تجاوز حد التمرير في Material You

الشكل 2. تأثير التمرير السريع في Android 12، كما هو موضّح في "الإعدادات"

لضمان اتساق المطوّرين، تأكَّد من أنّ التأثير العام لميزة "الانتقال السريع للأسفل أو للأعلى" على أجهزتك مشابه لما يلي:

  • على الأجهزة التي تعرض قيمة صحيحة لـ ActivityManager.isHighEndGfx()، يتمثل أثر التمرير السريع في التمدد غير الخطي للشاشة (كما هو موضّح أعلاه).

  • على الأجهزة ذات الأداء المنخفض، يتم تبسيط تأثير التمديد إلى التمديد الخطّي (لخفض الحمل على النظام).

استخدام ميزة التمرير السريع للأسفل أو للأعلى في تطبيقات الطرف الأول

عند استخدام طرق العرض المخصّصة، قد تحتاج إلى تعديل بعض التطبيقات وواجهة مستخدم النظام التي تستخدم تأثير التمدد.

  • لتفعيل ميزة التمديد أثناء الانتقال للأعلى أو للأسفل، عليك الترقية إلى أحدث المكتبات:

    • androidx.recyclerview:recyclerview:1.3.0-alpha01 لـ RecyclerView
    • androidx.core:core:1.7.0-alpha01 لمدة NestedScrollView و EdgeEffectCompat
    • androidx.viewpager:viewpager:1.1-alpha01 لـ ViewPager
  • بالنسبة إلى التنسيقات المخصّصة التي تستخدم EdgeEffect، ننصحك باتّباع التغييرات التالية في تجربة المستخدم:

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

    • عندما يلمس المستخدمون المحتوى أثناء عرض EdgeEffect الصورة المتحركة، يجب أن يتمكنوا من التفاعل مع الصورة المتحركة وأن يُسمح لهم بالتحكم في التمدد. تتوفّر قيمة السحب الحالية من EdgeEffectCompat.getDistance().

    • لإجراء تغييرات على قيمة السحب وعرض الكمية المستخدَمة، استخدِم onPullDistance(). يتيح ذلك للمطوّرين الانتقال بسلاسة من التمديد إلى الانتقال للأعلى أو للأسفل عندما يزيل الإصبع التمديد للمحتوى بعد تجاوز الموضع الافتتاحي.

    • عند استخدام ميزة "الانتقال المتداخل"، إذا تم تمديد المحتوى، يجب أن يستهلك التمديد حركة اللمس قبل المحتوى المتداخل، وإلا قد يؤدي التمديد إلى الانتقال عندما يغيّر الإصبع الاتجاه بدلاً من إزالة التمديد.

لمعرفة تفاصيل عن الانتقال إلى أعلى الصفحة أو أسفلها، يُرجى الاطّلاع على مقالة إضافة مؤثرات متحركة إلى لفتة التمرير.

استخدام التأثير المتموج (ملاحظات لمس الشاشة) في نظام التشغيل

يتضمّن نظام التشغيل Android 12 تأثيرًا خفيفًا وأكثر دقة عند اللمس لإعلام المستخدمين عند النقر للأسفل.

تموج Material You

الشكل 3. تأثير التموج في Android 12، مع تأثير ممتلئ أكثر نعومة

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

التطبيقات المصغَّرة

التطبيقات المصغّرة هي مكونات رئيسية لجهاز Android. يتضمّن Android 12 واجهات برمجة تطبيقات وإمكانات جديدة لواجهات برمجة التطبيقات يجب أن تتوفّر لدى جميع المصنّعين الأصليين للأجهزة.

مصادر إضافية

استخدام ألوان SysUI

(accent1 = A1، تمييز2 = A2، تمييز3 = A3، محايد1 = N1، محايد2 = N2)

استخدام ألوان Material You

الشكل 4: استخدام الألوان الديناميكية في واجهة مستخدم النظام

تعديلات على سمة اللون في مكتبة Material

سيتم تحديث Material لسمات المظاهر في الإصدار القادم من خلال إنشاء أدوار اللون المستخدمة لإضافة الألوان إلى طرق عرض محددة.

دور اللون سمة مظهر Android المظهر الفاتح
الألوان الديناميكية
المظهر الداكن
اللون الديناميكي
Primary colorPrimary نظام_accent1_600 نظام_accent1_200
في الحساب الأساسي colorOnPrimary نظام_accent1_0 system_accent1_800
ثانوي colorSecondary نظام_accent2_600 system_accent2_200
في المرحلة الثانوية لون ثانوي system_accent2_0 system_accent2_800
خطأ colorError لا ينطبق (red_600) لا ينطبق (red_200)
عند الخطأ خطأ في اللون لا ينطبق (أبيض) لا ينطبق (red_900)
خلفية android:colorBackground system_neutral1_10 system_neutral1_900
في الخلفية لون الخلفية system_neutral1_900 system_neutral1_100
مساحات العرض سطح الألوان system_neutral1_10 system_neutral1_900
على السطح colorOnSurface system_neutral1_900 system_neutral1_100

ستُعدّل Material سمات حالاتها باستخدام المؤشرات التالية:

دور اللون سمة مظهر Android المظهر الفاتح
الألوان الديناميكية
المظهر الداكن
اللون الديناميكي
محتوى الحالة الأساسية colorPrimaryStateContent system_accent1_700 system_accent1_200
طبقة الحالة الأساسية طبقة الألوان الأساسية للولاية system_accent1_600 system_accent1_300
محتوى الحالة الثانوية colorSecondaryStateContent system_accent2_700 system_accent2_200
طبقة الحالة الثانوية طبقة اللون الثانوية في حالة اللون system_accent2_600 نظام_accent2_300
المحتوى المتعلّق بالولاية الأساسية colorOnPrimaryStateContent system_accent1_0 نظام_accent1_800
على طبقة الحالة الأساسية colorOnPrimaryStateLayer system_accent1_900 system_accent1_800
يتم استخدام محتوى الحالة الثانوية colorOnSecondaryStateContent system_accent2_0 نظام_accent2_800
في طبقة الحالة الثانوية colorOnSecondaryStateLayer system_accent2_900 system_accent2_800
على محتوى حالة الحاوية الأساسية colorOnPrimaryContainerStateContent نظام_accent1_900 system_accent1_900
على طبقة حالة الحاوية الأساسية colorOnPrimaryContainerStateLayer system_accent1_900 system_accent1_900
محتوى حالة الحاوية الثانوية colorOnSecondaryContainerStateContent system_accent2_900 system_accent2_900
في طبقة حالة الحاوية الثانوية colorOnثانويContainerStateLayer system_accent2_900 system_accent2_900
حول محتوى حالة الحاوية الثانوية colorOnTertiaryContainerStateContent system_accent3_900 system_accent3_900
في طبقة حالة الحاوية الثانوية شهادة colorOnTertiaryContainerStateLayer system_accent3_900 نظام_accent3_900
محتوى حالة العرض colorOnSurfaceStateContent system_neutral1_900 system_neutral1_100
طبقة حالة السطح وظيفة colorOnSurfaceStateLayer system_neutral1_900 system_neutral1_100
محتوى حالة السعر المعروض colorOnSurfaceVariantStateContent system_neutral2_700 نظام_محايد2_200
طبقة حالة خيار المنتج على السطح colorOnSurfaceVariantStateLayer system_neutral2_700 system_neutral2_200
محتوى حالة الخطأ colorErrorStateContent red800 red200

الأسئلة الشائعة

استخراج الألوان

بعد أن يغيّر المستخدم الخلفية، هل يتم استخراج الألوان تلقائيًا أم يجب تفعيلها من مكان ما؟

باستخدام تصحيحات Android 12، يكون استخراج ألوان الخلفية مفعّلاً تلقائيًا.

تؤدي ThemeOverlayController.java إلى تشغيل المنطق باستخدام ThemeOverlayController#mOnColorsChangedListener وWallpaperManager#onWallpaperColorsChanged.

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

يتم بدء استخراج الألوان عندما يضبط المستخدم الخلفية أو بعد دورة تشغيل/إيقاف الشاشة (استجابةً لحدثWallpaperEngine#notifyColorsChanged). يتم تطبيق حدث WallpaperColors الأخير (من الخلفية الحية) بعد أن يُطفئ المستخدم الشاشة ويشغّلها مرة أخرى.

منتقي المظهر/الخلفيات

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

نعم. في أداة اختيار المظاهر، يمكنك استخدام ColorScheme#getSeedColors(wallpaperColors: WallpaperColors).

تتوفّر ميزة في أسماء هواتف Pixel تُعرف باسم رمز مخصّص. هل هو مضمّن في التصحيحات الثلاثة التي شاركتها؟ كيف يمكن لمصنّعي المعدّات الأصلية تنفيذ ذلك؟

لا، لا تزال الرموز المستوحاة من موضوع معيّن في مرحلة تجريبية ولا تتوفّر في نظام التشغيل Android 12.

هل هناك طريقة لاستخدام تطبيق "خلفيات Google" مع تفعيل ميزتَي استخراج اللون واختياره؟

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

يُرجى التواصل مع مدير حسابك لدى Google للاطّلاع على مزيد من التفاصيل.

هل يمكن لشركة Google مشاركة التطبيق أو رمز المصدر لكي يتمكّن المصنّعون الأصليون للأجهزة من تنفيذ إصدار خاص بهم من ميزة معاينة الألوان الديناميكية في قائمة الإعدادات، والتي تبدو مشابهة لقسم المعاينة المعروض في تطبيق "أداة اختيار الخلفيات" من Google؟

الفئات الرئيسية التي تعرِض المعاينة هي WallpaperPicker2 و Launcher3.

شاشة معاينة الخلفية هي WallpaperSectionController.

كيف يمكن تنفيذ المعاينة بعد تغيير اللون، كما هو موضّح في تطبيق "خلفيات Google"؟

يتوقّع تطبيق "أداة اختيار الخلفية" توفُّر ContentProvider من مشغّل التطبيقات (يتوفر هذا الخيار في مشغّل التطبيقات المستنِد إلى Launcher3). يتم تقديم المعاينة من قِبل GridCustomizationsProvider في "مشغّل التطبيقات"، ويجب الإشارة إليها في البيانات الوصفية لنشاط "مشغّل التطبيقات" الرئيسي لكي يقرأها تطبيق الخلفية والتصميم. يتم تنفيذ كل ذلك في ملف ‎AOSP's Launcher3 وهو متاح لمصنعي الأجهزة الأصليين.