بدءًا من 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 لألوان بدء التشغيل
- السماح للعناصر التي تظهر على سطح الشاشة بالحصول على إشعارات بشأن تغييرات المظهر
- إصلاح حالة السباق عند ضبط sysprops للون التمهيد (الجولة 2)
- نقل FeatureFlags إلى حزمة flags
- تنفيذ ميزة تخصيص المظاهر للمستخدمين المتعدّدين بشكلٍ صحيح
- حلّ مشكلة عدم توفّر خيار لون الخلفية المحدّد بعد إعادة التشغيل
- إصلاح خطأ في احتساب درجة اللون الثانوية
- عدم السماح للتطبيقات التي تعمل في الخلفية بتغيير المظهر
تحديد ألوان مخصّصة في 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" encodin>g<="ut>f-8&q<uot;?
resources
array >name=&quo<t;co>lor_bu<ndles>"
< > item<color>1/item
< > item<color>2/item
< > item<color>3/ite<m
> it<emcolor4/item
/array
st>ring< name=&>quot;<bundle_name_color1"Blue/str>ing<
st>ring <name="bundle_name_color2&qu>ot;Red</string>
<string name="bundle_name_co>lor3&<quot;Ye>ll<ow/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_co>lor1&qu<ot;#00>00FF/<color
color name="color_se>condary<_color>1"<;#0000FF/color
color name=&q>uot;col<or_pri>mary_<color2"#ff0000/color
color> name=&<quot;c>olor_s<econdary_color2"#ff0000/colo>r
<color >name=<"color_primary_color3"#ff>ff00/co<lor
> colo<r name="color_secondary_colo>r3"<;#ffff>00/co<lor
color name="color_pri>mary_co<lor4&q>u<ot;#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 كما هو موضّح أدناه:
-
- Chroma: استخدِم "16"
- درجة اللون: نفسها في المصدر
-
- التشبّع: استخدِم "32"
- تدرُّج الألوان: تدوير بمقدار 60 درجة موجبة
-
- درجة التشبّع: استخدِم "4".
- درجة اللون: نفسها في المصدر
-
- Chroma: استخدِم "8"
- درجة اللون: نفسها في المصدر
يتضمّن CTS اختبارات للتحقّق من صحة طلبات البيانات من واجهة برمجة التطبيقات الخاصة بكل من الإضاءة والصبغة. لاستخدامه، استخدِم
atest SystemPalette
.
الخطوة 4: استخدام الألوان الديناميكية في التطبيقات وواجهة مستخدم النظام
بعد ضبط الألوان الديناميكية على جهاز، تتّبع التطبيقات إرشادات Material ل استخدام الألوان. من المقرّر طرح إرشادات 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.the
me_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 حركة التمرير السريع الديناميكية التي تستجيب بشكلٍ أفضل في شكل تمديد العرض، والتي تظهر عندما يحاول المستخدم التمرير باتجاه حافة القائمة. في ما يلي مثال:
الشكل 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 تبسيط رمز التطبيق المصغّر الحالي تبسيط مجموعات RemoteView الأداة 2 تبسيط وقت تشغيل RemoteView الأداة 2
مراجع إضافية
استخدام ألوان واجهة المستخدم الخاصة بالنظام
(accent1 = A1, accent2 = A2, accent3 = A3, neutral1 = N1, neutral2 = N2)
الشكل 4: استخدام الألوان الديناميكية في واجهة مستخدم النظام
تعديلات على سمة اللون في مكتبة Material
ستُعدّل Material سمات المظهر في الإصدار القادم من خلال إنشاء أدوار ألوان تُستخدَم لإضافة لون إلى طرق عرض معيّنة.
دور اللون | سمة مظهر Android | المظهر الفاتح الألوان الديناميكية |
المظهر الداكن اللون الديناميكي |
---|---|---|---|
اللون الأساسي | 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 |
خطأ | colorError | لا ينطبق (red_600) | لا ينطبق (red_200) |
عند الخطأ | 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 |
على السطح | 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 |
في طبقة الحالة الأساسية | 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 | system_neutral1_900 | system_neutral1_100 |
طبقة حالة السطح | colorOnSurfaceStateLayer | system_neutral1_900 | system_neutral1_100 |
محتوى حالة السعر المعروض | colorOnSurfaceVariantStateContent | system_neutral2_700 | system_neutral2_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 وهو متاح لمصنعي الأجهزة الأصليين.