بدءًا من Android 12، يركز تصميم Material You على التعبير عن الذات والسلاسة في نظام التشغيل Android، بهدف مساعدة المستخدمين في إنشاء تجربة متماسكة واحدة تلبي احتياجاتهم. بصفتك شريكًا في Android، ننصحك بدمج تصميم Material You في أجهزة Android في الجوانب التالية:
- ألوان ديناميكية
- الحركة
- التطبيقات المصغَّرة
ألوان ديناميكية
يشكّل اللون الديناميكي العنصر الرئيسي في تصميم Material You، وهو جزء أساسي من استراتيجية Android المتعدّدة السنوات التي تهدف إلى توفير ميزات تخصيص أبسط وأدق لمستخدمي Android بطريقة لا تتوفّر في أي أجهزة أخرى. يوفّر نظام Material You ما يلي:
يوفّر للمستخدمين والمطوّرين تجربة تخصيص متسقة وغنية في أي جهاز Android.
إتاحة فرص لشركات المصنّعين الأصليّين للأجهزة التي تعمل بنظام التشغيل Android لمواصلة ابتكار واجهة المستخدم للنظام والتطبيقات التابعة للجهة المصنّعة بطريقة تتوافق مع الأجهزة والعلامة التجارية من حيث اللون والشكل والتصميم
للاستفادة من ميزة "الألوان الديناميكية"، استخدِم قصة استخراج الألوان في Material You في Android 12 كجزء أساسي من عرضك البرمجي للمستخدمين. على الجهاز، استخدِم منطق استخراج الألوان المتوفّر في AOSP، خاصةً المنطق الذي يأخذ لونًا واحدًا من مصدر الخلفية أو المظهر ويعرضه من خلال 65 واجهة برمجة تطبيقات للألوان. لمعرفة متطلبات الألوان الديناميكية، يُرجى الاطّلاع على مقالة استخدام ميزة "الألوان الديناميكية".
يتضمّن تدفق الألوان الديناميكي الكامل أربع خطوات، كما هو موضّح أدناه:
الشكل 1: ألوان Material You الديناميكية
يغيّر المستخدم الخلفية أو المظهر من خلال أداة اختيار المصنّع الأصلي للجهاز.
يختار المستخدم أحد الخيارات التالية:
مظهر الجهاز: عند اختيار أحد الخيارات، يختار Android تلقائيًا لونًا واحدًا من مصدر واحد يستوفي المتطلبات.
خلفية وتصميم جديدان عند اختياره، يختار منطق AOSP تلقائيًا لون مصدر واحد من الخلفية المحدّدة.
تقوم AOSP بتوسيع لون المصدر الفردي إلى 5 لوحات ألوان مع 13 متغير لوني لكل منها، وفقًا لمنطق AOSP، الذي يملأ بعد ذلك سمات الألوان البالغ عددها 65.
يستخدم واجهة مستخدم التطبيق 65 سمة لون بطريقة متّسقة في منظومة تطبيقات Android المتكاملة. ننصحك باستخدام لوحة الألوان نفسها لواجهة مستخدم نظام الجهاز والتطبيقات الخاصة بصانعي الأجهزة الأصليين.
تصحيحات Android 12
للحصول على المنطق الكامل لاستخراج ألوان الخلفية، ولتمكين الجهاز من ملء واجهات برمجة التطبيقات التي تتضمّن 65 لونًا بطريقة متوافقة مع المنظومة المتكاملة، أدرِج الإصلاحات التالية في عملية تنفيذ Android 12:
إلزامي
يُنصح به بشدة
- إصلاح شرط السباق عند ضبط عناصر دعم ألوان التمهيد
- السماح للعناصر التي تظهر على سطح الشاشة بالحصول على إشعارات بشأن تغييرات المظهر
- إصلاح حالة السباق عند ضبط sysprops للون التمهيد (الجولة 2)
- نقل علامات الميزات إلى حزمة الإبلاغ عن المحتوى
- تنفيذ ميزة تخصيص المظاهر للمستخدمين المتعدّدين بشكل صحيح
- إصلاح خيار لون الخلفية المحدّد المفقود بعد إعادة التشغيل
- إصلاح خطأ في احتساب درجة اللون الثانوية
- عدم السماح للتطبيقات التي تعمل في الخلفية بتغيير المظهر
تحديد ألوان مخصّصة في 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 كما هو موضّح أدناه:
-
- كثافة اللون: استخدِم "16"
- درجة اللون: نفسها في المصدر
-
- كثافة اللون: استخدِم "32"
- تدرُّج الألوان: تدوير بمقدار 60 درجة موجبة
-
- درجة التشبّع: استخدِم "4".
- درجة اللون: نفسها في المصدر
-
- 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 حركة التمرير السريع الديناميكية التي تستجيب بشكلٍ أفضل في شكل تمديد العرض، والتي تظهر عندما يحاول المستخدم التمرير بشدّة إلى ما بعد حافة القائمة. في ما يلي مثال:
الشكل 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 تأثيرًا خفيفًا وأكثر دقة عند اللمس لإعلام المستخدمين عند النقر للأسفل.
الشكل 3. تأثير التموج في Android 12، مع تأثير ممتلئ أكثر نعومة
لضمان قدرة المطوّرين على توقّع التأثيرات وتقديم تجربة رائعة للمستخدمين، تأكّد من أنّ أثر التموج على أجهزتك مشابه للمثال الموضّح أعلاه. على الرغم من أنّه لست بحاجة إلى تنفيذ أي خطوات دمج محدّدة لتفعيل تأثيرات التأثير المتسلسل، عليك اختبار التأثير على أجهزتك للتحقّق من أي تدهور غير مقصود تمّ إدخاله في عملية التنفيذ.
التطبيقات المصغَّرة
التطبيقات المصغّرة هي مكونات رئيسية لجهاز Android. يتضمّن Android 12 واجهات برمجة تطبيقات وإمكانات جديدة لواجهات برمجة التطبيقات يجب أن تتوفّر لدى جميع المصنّعين الأصليين للأجهزة.
أن تتيح واجهات برمجة التطبيقات للمطوّرين في نظام التشغيل إمكانية الوصول إلى تنسيقات التطبيقات المصغّرة وحجمها ومقاييس البرامج (على سبيل المثال، حجم الزاوية المستديرة) يجب أن يتيح التنفيذ استخدام التطبيقات المصغّرة بشكلٍ صحيح في توفير المَعلمات من خلال واجهات برمجة التطبيقات، ويجب أن يضمن أن تكون التطبيقات المصغّرة قابلة للتغيير والتعديل من قِبل المستخدم.
يمكنك في تطبيقاتك الاستفادة من إمكانات واجهة برمجة التطبيقات الجديدة لتحديث تطبيقات الطرف الأول أو إنشائها متى أمكن ذلك. بالنسبة إلى جميع أدوات تطبيق الطرف الأول في نطاقك، عليك تشغيل قائمة التحقق الخاصة بمطوّري البرامج أدناه.
- تستند الأولوية إلى الاقتراحات من المنصة.
- للاطّلاع على تفاصيل حول اقتراح معيّن، اتّبِع الرابط في عمود "التغيير".
المنطقة تغيير أولوية التنفيذ تحسين تجربة استخدام الصفحة الرئيسية إضافة معاينات قابلة للتكبير/التصغير الأداة 1 إضافة وصف التطبيق المصغّر الأداة 1 تسهيل تخصيص التطبيقات المصغّرة P2 (اختياري) تفعيل عمليات النقل الأكثر سلاسة الأداة 0 تجنُّب استخدام قنوات البث الأداة 0 اتّباع إرشادات التطبيقات المصغّرة تحسين أحجام التطبيقات المصغّرة وتنسيقاتها الأداة 2 تطبيق ألوان ديناميكية الأداة 0 استخدام الزوايا المستديرة الأداة 0 إضافة buttons أزرار مركبة جديدة الأداة 2 تبسيط رمز الأداة الحالي تبسيط مجموعات العرض عن بُعد الأداة 2 تبسيط وقت تشغيل RemoteView الأداة 2
مصادر إضافية
استخدام ألوان SysUI
(accent1 = A1، تمييز2 = A2، تمييز3 = A3، محايد1 = N1، محايد2 = N2)
الشكل 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 وهو متاح لمصنعي الأجهزة الأصليين.