بدءًا من Android 12، يركز تصميم Material You على التعبير والسلاسة في نظام التشغيل Android، بهدف مساعدة المستخدمين على إنشاء وامتلاك تجربة واحدة متماسكة تلبي احتياجاتهم. باعتبارك أحد شركاء Android، ننصحك بدمج المواد التي تصممها في أجهزة Android الخاصة بك في المجالات التالية:
- اللون الديناميكي
- حركة
- الحاجيات
اللون الديناميكي
يعد اللون الديناميكي هو محور المواد التي تصممها وجزء أساسي من إستراتيجية Android المتعددة السنوات لتوفير تخصيص أبسط وأعمق لمستخدميه بطريقة لا تفعلها الأجهزة الأخرى. المواد التي تقدمها:
للمستخدمين والمطورين قصة متسقة وغنية للتخصيص متاحة في أي جهاز يعمل بنظام Android.
فرص مصنعي المعدات الأصلية لنظام التشغيل Android لمواصلة ابتكار واجهة مستخدم النظام وتطبيقات الطرف الأول بطريقة تتوافق مع لون أجهزتهم وعلامتهم التجارية وتصنيعها وشكلها.
للاستفادة من اللون الديناميكي، استخدم قصة استخلاص الألوان لنظام Android 12 Material You كجزء أساسي من عرض برنامجك للمستخدمين. على الجهاز، استخدم منطق استخراج الألوان الموجود في AOSP، وخاصة المنطق الذي يأخذ خلفية واحدة أو لون مصدر السمة ويخرجه من خلال 65 واجهة برمجة تطبيقات ملونة. للتعرف على متطلبات الألوان الديناميكية، راجع استخدام اللون الديناميكي .
يتضمن تدفق الألوان الديناميكي الكامل أربع خطوات، كما هو موضح أدناه:
الشكل 1. المواد التي تتدفق الألوان الديناميكية
يقوم المستخدم بتغيير الخلفية أو السمة من خلال منتقي OEM.
يقوم المستخدم باختيار واحد مما يلي:
موضوع الجهاز. عند تحديده، يقوم Android تلقائيًا باختيار لون مصدر واحد يلبي المتطلبات.
خلفية جديدة + موضوع. عند تحديده، يقوم منطق AOSP تلقائيًا باختيار لون مصدر واحد من خلفية الشاشة المحددة.
يقوم AOSP بتوسيع اللون المصدر الفردي إلى 5 لوحات تدرجات لونية تحتوي كل منها على 13 لونًا تدرجيًا، وفقًا لمنطق AOSP، الذي يقوم بعد ذلك بملء سمات الألوان الـ 65.
تستخدم واجهة مستخدم التطبيق سمات الألوان الـ 65 بطريقة متسقة عبر النظام البيئي لتطبيقات Android. ننصحك باستخدام نفس لوحة الألوان لواجهة مستخدم النظام والتطبيقات الخاصة بـ OEM.
تصحيحات أندرويد 12
للحصول على المنطق الشامل لاستخراج لون خلفية الشاشة ولتمكين الجهاز من ملء واجهات برمجة التطبيقات ذات 65 لونًا بطريقة تتوافق مع النظام البيئي، قم بتضمين التصحيحات التالية في تطبيق Android 12:
إلزامي
ينصح بشدة
- إصلاح حالة السباق عند تعيين sysprops لون التمهيد.
- السماح بإخطار التراكبات بتغييرات السمة
- إصلاح حالة السباق عند ضبط لون التمهيد sysprops (الجولة 2)
- انقل FeaturesFlags إلى حزمة الأعلام.
- التنفيذ الصحيح لدعم السمات متعددة المستخدمين
- إصلاح خيار لون خلفية الشاشة المحدد المفقود بعد إعادة التشغيل
- إصلاح الخطأ في حساب درجة اللون الثالثية
- لا تسمح لتطبيقات الخلفية بتغيير المظهر
تحديد الألوان المخصصة في 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 كما هو مكتوب أدناه:
- الصفاء: استخدم "16"
- هوى: نفس المصدر
- الصفاء: استخدم "32"
- اللون: تدوير بمقدار 60 درجة إيجابية
- الصفاء: استخدم "4"
- هوى: نفس المصدر
- الصفاء: استخدم "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 واجهات برمجة التطبيقات وإمكانيات واجهة برمجة التطبيقات الجديدة التي يجب على جميع مصنعي المعدات الأصلية دعمها.
في نظام التشغيل لديك، قم بدعم واجهات برمجة تطبيقات المطورين المتعلقة بتخطيطات عناصر واجهة المستخدم وحجمها ومعلمات البرنامج (على سبيل المثال، حجم الزاوية المستديرة). يجب أن يدعم التنفيذ الخاص بك عناصر واجهة المستخدم بشكل صحيح في توفير المعلمات من خلال واجهات برمجة التطبيقات وفي ضمان أن تكون عناصر واجهة المستخدم كبيرة الحجم وقابلة للتكوين بواسطة المستخدم.
في تطبيقاتك، استفد من إمكانيات واجهة برمجة التطبيقات الجديدة لتحديث أو إنشاء أدوات جديدة للطرف الأول حيثما أمكن ذلك. بالنسبة لجميع أدوات تطبيقات الطرف الأول في نطاق اختصاصك، قم بتشغيلها من خلال قائمة التحقق للمطورين أدناه.
- الأولوية تعتمد على التوصيات الواردة من المنصة.
- للحصول على تفاصيل حول التوصية، اتبع الرابط الموجود في عمود التغيير.
منطقة يتغير أولوية التنفيذ تحسين تجربة المنزل أضف معاينات قابلة للتطوير ص1 أضف وصف القطعة ص1 تسهيل تخصيص الأدوات P2 (اختياري) تمكين التحولات الأكثر سلاسة ص0 تجنب بث الترامبولين ص0 اعتماد المبادئ التوجيهية القطعة تحسين أحجام القطعة والتخطيطات ص2 تطبيق الألوان الديناميكية ص0 تنفيذ زوايا مستديرة ص0 إضافة أزرار مركبة جديدة ص2 تبسيط رمز القطعة الموجودة تبسيط مجموعات RemoteView ص2 تبسيط وقت تشغيل RemoteView ص2
مصادر إضافية
استخدام لون 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 وهو متاح لمصنعي المعدات الأصلية.