المواد التي تصممها

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

  • اللون الديناميكي
  • حركة
  • الحاجيات

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

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

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

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

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

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

المواد التي تتدفق اللون

الشكل 1. المواد التي تتدفق الألوان الديناميكية

  1. يقوم المستخدم بتغيير الخلفية أو السمة من خلال منتقي OEM.

  2. يقوم المستخدم باختيار واحد مما يلي:

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

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

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

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

تصحيحات أندرويد 12

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

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

إذا كنت تستخدم تطبيق AOSP ThemePicker، فسيعرض تطبيق 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: إنشاء تجربة سمات المستخدم

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

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

الخطوة 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 وتطبيقات الجهات الخارجية التي تدعم الألوان الديناميكية تبدو رائعة عن طريق القيام بما يلي:

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

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

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

لتحقيق اتساق المطور، يجب أن تعتمد لوحات الدرجات اللونية الخمس (لكنة 1، لهجة 2، لهجة 3، محايدة 1، محايدة 2) والألوان الـ 13 المقابلة لها على لون مصدر واحد مع التغييرات ذات الصلة على قيم الصفاء وتدرج اللون CAM16 كما هو مكتوب أدناه:

  • system_accent1

    • الصفاء: استخدم "40" لمتغيرات الألوان التي تنتهي بـ 0 و 10 و 50 و 100 ، وإلا "48"
    • هوى: نفس المصدر
  • system_accent2

    • الصفاء: استخدم "16"
    • هوى: نفس المصدر
  • system_accent3

    • الصفاء: استخدم "32"
    • اللون: تدوير بمقدار 60 درجة إيجابية
  • system_neutral1

    • الصفاء: استخدم "4"
    • هوى: نفس المصدر
  • system_neutral2

    • الصفاء: استخدم "8"
    • هوى: نفس المصدر

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

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

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

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

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

مصمم لنظام التشغيل Android 13 والإصدارات الأحدث

بدءًا من Android 13، تم إيقاف 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 ). نظرًا لأن معظم تطبيقات الجهات الخارجية تستخدم مكونات المواد لنظام التشغيل Android لعرض الألوان الديناميكية، فإننا نستخدم القائمة المسموح بها ذات الترميز الثابت لمعرفة الأجهزة التي قامت بدمج ميزة لوحات درجات الألوان الديناميكية .

حركة

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

استخدام التمرير الزائد في نظام التشغيل لديك

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

المواد التي تقوم بالتمرير الزائد عنها

الشكل 2. تأثير التمرير الزائد لنظام Android 12، كما هو موضح في الإعدادات

لتحقيق الاتساق بين المطورين، تأكد من أن تأثير التمرير الزائد الإجمالي على أجهزتك مشابه لما يلي:

  • على الأجهزة التي تُرجع القيمة true لـ 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 على تموجات لمس أكثر نعومة ودقة لتقديم تعليقات للمستخدمين عند النقر لأسفل.

المواد التي تموج

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

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

الحاجيات

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

مصادر إضافية

استخدام لون SysUI

(اللكنة 1 = A1، اللكنة 2 = A2، اللكنة 3 = A3، اللكنة 1 = N1، اللكنة 2 = N2)

المواد التي تستخدمها في اللون

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

تحديثات سمات لون مكتبة المواد

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

دور اللون سمة موضوع الروبوت موضوع الضوء
اللون الديناميكي
موضوع الظلام
اللون الديناميكي
أساسي colorPrimary system_accent1_600 system_accent1_200
على الابتدائية colorOnPrimary system_accent1_0 system_accent1_800
ثانوي colorSecondary system_accent2_600 system_accent2_200
على الثانوية colorOnSecondary system_accent2_0 system_accent2_800
خطأ خطأ في اللون غير متوفر (أحمر_600) غير متوفر (أحمر_200)
على خطأ colorOnError غير متوفر (أبيض) غير متوفر (أحمر_900)
خلفية android:colorBackground نظام_محايد1_10 نظام_محايد1_900
على الخلفية colorOnBackground نظام_محايد1_900 نظام_محايد1_100
سطح colorSurface نظام_محايد1_10 نظام_محايد1_900
على السطح colorOnSurface نظام_محايد1_900 نظام_محايد1_100

ستقوم المادة بتحديث سمات حالتها بالمؤشرات التالية:

دور اللون سمة موضوع الروبوت موضوع الضوء
اللون الديناميكي
موضوع الظلام
اللون الديناميكي
محتوى الدولة الأساسي 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
على طبقة الدولة الأساسية colorOnPrimaryStateLayer system_accent1_900 system_accent1_800
على محتوى الدولة الثانوية colorOnSecondaryStateContent system_accent2_0 system_accent2_800
على طبقة الدولة الثانوية colorOnSecondaryStateLayer system_accent2_900 system_accent2_800
على محتوى حالة الحاوية الأساسية colorOnPrimaryContainerStateContent system_accent1_900 system_accent1_900
على طبقة حالة الحاوية الأساسية colorOnPrimaryContainerStateLayer system_accent1_900 system_accent1_900
على محتوى حالة الحاوية الثانوية colorOnSecondaryContainerStateContent system_accent2_900 system_accent2_900
على طبقة حالة الحاوية الثانوية colorOnSecondaryContainerStateLayer system_accent2_900 system_accent2_900
على محتوى حالة الحاوية الثالثية colorOnTertiaryContainerStateContent system_accent3_900 system_accent3_900
على طبقة حالة الحاوية الثلاثية colorOnTertiaryContainerStateLayer system_accent3_900 system_accent3_900
على محتوى الحالة السطحية colorOnSurfaceStateContent نظام_محايد1_900 نظام_محايد1_100
على طبقة الحالة السطحية colorOnSurfaceStateLayer نظام_محايد1_900 نظام_محايد1_100
على محتوى الحالة المتغيرة للسطح colorOnSurfaceVariantStateContent نظام_محايد2_700 system_neutral2_200
على طبقة الحالة المتغيرة السطحية colorOnSurfaceVariantStateLayer نظام_محايد2_700 system_neutral2_200
محتوى حالة الخطأ colorErrorStateContent red800 red200

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

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

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

مع تصحيحات Android 12 ، يتم تشغيل استخراج لون خلفية الشاشة بشكل افتراضي .

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

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

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

منتقي الموضوع/الخلفية

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

نعم. في منتقي السمات الخاص بك، يمكنك استخدام ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) .

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

لا. الرموز ذات السمات موجودة في الإصدار التجريبي وغير متوفرة في Android 12.

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

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

تواصل مع TAM الخاص بك لمزيد من التفاصيل.

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

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

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

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

يتوقع تطبيق منتقي الخلفيات أن يكون ContentProvider متاحًا من Launcher (يحتوي المشغل المستند إلى Launcher3 عليه). يتم توفير المعاينة بواسطة GridCustomizationsProvider في Launcher، والتي يجب الرجوع إليها في البيانات التعريفية للنشاط الرئيسي لـ Launcher لتطبيق الخلفية والنمط لقراءتها. يتم تنفيذ كل هذا في Launcher3 الخاص بـ AOSP وهو متاح لمصنعي المعدات الأصلية.