تصميم Material You

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

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

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

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

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

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

للاستفادة من ميزة "الألوان الديناميكية"، استخدِم قصة استخراج الألوان في Material You على Android 12 كجزء أساسي من عروض برامجك للمستخدمين. على الجهاز، استخدِم منطق استخراج الألوان المتوفّر في مشروع Android مفتوح المصدر (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.

تنسيق حزمة 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، كما يتيح لهم إمكانية الاختيار من بين خيارات الألوان أو الإعدادات المُسبقة. وبما أنّها تتناسب مع منتجك والفئة السكانية للمستخدمين، يمكنك أن تقدّم للمستخدمين تجربة تخصيص وألوان أكثر ثراءً من خلال استخدام أداة اختيار المظهر أو أداة اختيار الخلفية.

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

الخطوة 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

    • Chroma: use "16"
    • درجة اللون: مثل درجة لون المصدر
  • system_accent3

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

    • اللون: استخدِم القيمة "4"
    • درجة اللون: مثل درجة لون المصدر
  • system_neutral2

    • اللون: استخدِم "8"
    • درجة اللون: مثل درجة لون المصدر

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

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

بعد ضبط الألوان الديناميكية على أحد الأجهزة، تلتزم التطبيقات بإرشادات Material للاستفادة من الألوان. من المقرر طرح إرشادات المواد على 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 للألوان وكيفية استخدام واجهات برمجة التطبيقات في SysUI، يمكنك الاطّلاع على مراجع إضافية.

الخطوة 5: إضافة خيارات الألوان الديناميكية في عملية تنفيذ WallpaperPicker في "مشروع Android مفتوح المصدر"

الإصدارات المخصّصة لنظام التشغيل 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"
}

الإصدارات المخصّصة لنظام التشغيل Android 12 والإصدارات الأقدم

عند استخدام أداة اختيار سمة مخصّصة، يجب أن يرسل الجهاز لون مصدر صالحًا إلى 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 واجهات برمجة تطبيقات وإمكانات جديدة يجب أن تتوافق معها جميع الشركات المصنّعة للأجهزة الأصلية.

مراجع إضافية

استخدام الألوان في واجهة المستخدم الخاصة بالنظام

(accent1 = A1, accent2 = A2, accent3 = A3, neutral1 = N1, neutral2 = N2)

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

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

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

سيتم تعديل سمات التصميم في Material في الإصدار القادم من خلال إنشاء أدوار ألوان تُستخدَم لتوفير اللون لعناصر عرض معيّنة.

دور اللون سمة المظهر في Android المظهر الفاتح
ألوان ديناميكية
المظهر الداكن
اللون التفاعلي
اللون الأساسي colorPrimary system_accent1_600 system_accent1_200
في "البريد الأساسي" colorOnPrimary system_accent1_0 system_accent1_800
Secondary colorSecondary system_accent2_600 system_accent2_200
في القناة الثانوية colorOnSecondary system_accent2_0 system_accent2_800
خطأ colorError غير متوفّر (red_600) غير متوفّر (red_200)
On Error colorOnError غير متوفّر (أبيض) لا ينطبق (red_900)
خلفية android:colorBackground system_neutral1_10 system_neutral1_900
في الخلفية colorOnBackground system_neutral1_900 system_neutral1_100
سطح colorSurface system_neutral1_10 system_neutral1_900
على Surface colorOnSurface system_neutral1_900 system_neutral1_100

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

دور اللون سمة المظهر في Android المظهر الفاتح
ألوان ديناميكية
المظهر الداكن
اللون التفاعلي
محتوى الحالة الأساسية colorPrimaryStateContent system_accent1_700 system_accent1_200
طبقة الحالة الأساسية colorPrimaryStateLayer system_accent1_600 system_accent1_300
محتوى الحالة الثانوية colorSecondaryStateContent system_accent2_700 system_accent2_200
طبقة الحالة الثانوية colorSecondaryStateLayer system_accent2_600 system_accent2_300
في محتوى الولاية الأساسية colorOnPrimaryStateContent system_accent1_0 system_accent1_800
On Primary State Layer colorOnPrimaryStateLayer system_accent1_900 system_accent1_800
On Secondary State Content colorOnSecondaryStateContent system_accent2_0 system_accent2_800
في طبقة الحالة الثانوية colorOnSecondaryStateLayer system_accent2_900 system_accent2_800
On Primary Container State Content colorOnPrimaryContainerStateContent system_accent1_900 system_accent1_900
في طبقة حالة الحاوية الأساسية colorOnPrimaryContainerStateLayer system_accent1_900 system_accent1_900
On Secondary Container State Content colorOnSecondaryContainerStateContent system_accent2_900 system_accent2_900
في طبقة حالة الحاوية الثانوية colorOnSecondaryContainerStateLayer system_accent2_900 system_accent2_900
On Tertiary Container State Content colorOnTertiaryContainerStateContent system_accent3_900 system_accent3_900
On Tertiary Container State Layer colorOnTertiaryContainerStateLayer system_accent3_900 system_accent3_900
On Surface State Content colorOnSurfaceStateContent system_neutral1_900 system_neutral1_100
On Surface State Layer colorOnSurfaceStateLayer system_neutral1_900 system_neutral1_100
On Surface Variant State Content colorOnSurfaceVariantStateContent system_neutral2_700 system_neutral2_200
On Surface Variant State Layer 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" مع تفعيل ميزتَي استخراج الألوان واختيارها؟

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

يُرجى التواصل مع مدير الحسابات التقنية (TAM) للحصول على مزيد من التفاصيل.

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

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

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

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

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