החומר שאתם מעצבים

החל מ-Android 12, העיצוב Material You מתמקד ביטוי וגמישות במערכת ההפעלה של Android, במטרה לעזור למשתמשים לי��ור והם הבעלים של חוויה אחת ומלוכדת שמתאימה לצרכים שלהם. כ-Android אתם מוזמנים לשלב את עיצוב Material You ב-Android מכשירים באזורים הבאים:

  • צבע דינמי
  • תנועה
  • ווידג'טים

צבע דינמי

צבע דינמי הוא החלק המרכזי בעיצוב 'חומר' שעיצבנו, והוא חלק חשוב האסטרטגיה רבת-השנים של Android מאפשרת התאמה אישית פשוטה ומעמיקה יותר למשתמשים באופן שונה מזה של מכשירים אחרים. החומר שאתם מציעים:

  • משתמשים ומפתחים נהנים מסיפור עקבי ועשיר של התאמה אישית, שזמין כל מכשיר Android.

  • הזדמנויות ליצרני ציוד מקורי של Android להמשיך ליצור ממשק משתמש חדשני של המערכת באופן שמתאים לצבע של החומרה והמותג שלהם, וכן הטופס הזה.

כדי ליהנות מהצבעים הדינמיים, צריך להשתמש ב-Android 12 סיפור חילוץ צבעים של Material You כחלק מרכזי בהצעת התוכנה משתמשים. במכשיר, משתמשים בלוגיקה של חילוץ צבעים ב-AOSP, במיוחד את הלוגיקה שלוקחת צבע אחד של טפט או מקור עיצוב ומפיקה אותו באמצעות 65 ממשקי API צבעוניים. הדרישות לצבעים דינמיים מפורטות במאמר שימוש דינמי. צבע.

תהליך הצבעים הדינמי המלא כולל ארבעה שלבים, כפי שמתואר בהמשך:

זרימת הצבע לחומר

איור 1. זרימת צבעים דינמית של Material You

  1. המשתמש משנה את הטפט או העיצוב דרך בורר ה-OEM.

  2. המשתמש בוחר באחת מהאפשרויות הבאות:

    • העיצוב של המכשיר. כשבוחרים באפשרות הזו, מערכת Android בוחרת באופן אוטומטי צבע מקור שעומד בדרישות.

    • טפט חדש ועיצוב חדש. כשבוחרים באפשרות הזו, לוגיקת AOSP בוחרת באופן אוטומטי צבע מקור אחד מהטפט שנבחר.

  3. AOSP מרחיב את צבע המקור היחיד ל-5 לוחות טונליים עם 13 גוונים כל אחת מהווריאציות, בהתאם ללוגיקת AOSP, שמאכלסת את 65 הצבעים .

  4. ממשק המשתמש של האפליקציה משתמש ב-65 מאפייני הצבעים באופן עקבי בסביבה העסקית של האפליקציות ל-Android. מומלץ להשתמש באותו לוח צבעים לממשק המשתמש של המערכת במכשיר ולאפליקציות ספציפיות ל-OEM.

תיקונים ל-Android 12

כדי לקבל את הלוגיקה מקצה לקצה לחילוץ צבעי טפט ולהפעיל את שימלא את ממשקי ה-API בפורמט 65 צבעים באופן שתואם לסביבה העסקית, צריך לכלול את התיקונים הבאים ב-Android 12 הטמעה:

ציון צבעים מותאמים אישית ב-ThemePicker

אם אתם משתמשים באפליקציית AOSP ThemePicker, BackgroundPicker האפליקציה תציג את קטע הצבעים אם שני התנאים הבאים מתקיימים:

  • flag_monet ב-frameworks/base/packages/SystemUI/res/values/flags.xml הוא true.
  • APK stub של מערכת עם שם החבילה מוגדר themes_stub_package ב קובץ packages/apps/ThemePicker/res/values/override.xml.

פורמט APK של Stub

אפשר למצוא גרסה לדוגמה של ה-APK הזה ב-packages/apps/ThemePicker/themes.

ה-APK הזה צריך להכיל משאבים בלבד, ולציין את הצבעים הבסיסיים הזמינים. והשמות שלהם.

ה-stub צריך להכיל קובץ 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 chroma value של 5; כדי להבטיח שצבע המקור לא יושפע לגוונים כהים כאשר הוא מומר מצבע יחיד ל-65 צבעים טונליים עדיין מייצג את בחירת המשתמש. כדי לקרוא ולשנות צבעים ב-CAM16: משתמשים ב-Cam#fromInt או ב-Cam#getInt.

שימוש בלוח צבעים לא דינמי במכשירים שלא תומכים בחילוץ צבע של הטפט, אפשר עדיין אפליקציות Google ואפליקציות של צד שלישי שתומכות במראה דינמי של צבעים. מצוין באופן הבא:

  • כדי להש��מש בלוח הצבעים שמוגדר כברירת מחדל, צריך להשבית את flag_monet במצב מופעל frameworks/base/packages/SystemUI/res/values/flags.xml.
  • מוודאים שהמשתמשים עדיין יכולים להתאים אישית את מערכת ההפעלה שלהם באמצעות בוחר עיצובים שהוגדר מראש.

שלב 3: מרחיבים את צבע המקור לממשקי API צבעוניים

מערכת Android משתמשת בצבע המקור היחיד שנגזר מהשלב הקודם 5 לוחות צבעים ייחודיים (טעם 1-3, ניטרלי 1-2), כל לוח, כולל 13 וכל צבע כולל ערכי הארה שונים (0 עד 1, 000), ב-65 צבעים בסך הכול. הלוגיקה שקיימת ב-Android 12 תיקונים מטמיעים את הרחבת הצבע הזו בצורה נכונה. ה בהמשך נתאר את ההטמעה.

כדי לשמור על עקביות למפתחים, יש 5 לוחות טונליים (accent1, הדגשה2, הדגשה3), ניטרלי1, ניטרלי2) ו-13 הצבעים התואמים שלהם חייבים להתבסס על בצבע מקור אחד עם השינויים המתאימים ב- CAM16 כרמה וגוון כפי שמפורט בהמשך:

  • system_accent1

    • Chroma: שימוש ב-"40" לווריאציות של צבעים שמסתיימות ב- 0, 10, 50, וגם 100, אחרת, "48"
    • גוון: זהה למקור
  • system_accent2

    • Chroma: עליך להשתמש בערך '16'
    • גוון: זהה למקור
  • system_accent3

    • Chroma: שימוש ב-"32"
    • גוון: סיבוב ב-60 מעלות חיובי
  • system_neutral1

    • Chroma: שימוש ב-"4"
    • גוון: זהה למקור
  • system_neutral2

    • Chroma: שימוש ב-"8"
    • גוון: זהה למקור

CTS כולל בדיקות לאימות בהירות וקריאות של גוון API. כדי להפעיל את המודעה, צריך להשתמש 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 ועל אופן השימוש בממשקי API SysUI, ראה משאבים נוספים.

שלב 5: הוספה של אפשרויות צבע דינמיות בהטמעה של AOSP BackgroundPicker

build ל-Android מגרסה 13 ואילך

החל מ-Android 13, android.theme.customization.accent_color הוצא משימוש. מאפיין חדש android.theme.customization.theme_style הוא נוסף כדי לתמוך בווריאציות צבע שונות. כרגע אנחנו יש ארבע וריאציות ב-codebase באופן הבא:

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"
}

Build ל-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. 12 Android כולל יכולות חדשות של ממשקי API ויכולות API, שכל יצרני ה-OEM צריכים לתמוך בהן.

מקורות מידע נוספים

שימוש בצבעים של SysUI

(accent1 = A1, breakdown2 = A2, סטיג3 = A3, ניטרלי1 = N1, ניטרלי2 = N2)

החומר שבו משתמשים בצביעה

איור 4. שימוש בצבע דינמי בממשק המשתמש של המערכת

עדכונים של מאפייני הצבע בספריית Material

בגרסה החדשה, מאפייני העיצוב של חומר הלימוד יעדכנו את מאפייני העיצוב על ידי יצירת תפקידי צבע שמשמשים לאספקת צבע בתצוגות ספציפיות.

תפקיד הצבע מאפיין העיצוב של Android עיצוב בהיר
צבע דינמי
עיצוב כהה
צבע דינמי
ראשי צבע ראשי system_accent1_600 system_accent1_200
בשירות 'ראשי' צבע ראשי system_accent1_0 system_accent1_800
Secondary צבע משני system_accent2_600 system_accent2_200
במסלול משני צבע משני system_accent2_0 system_accent2_800
שגיאה שגיאת צבע לא רלוונטי (red_600) לא רלוונטי (red_200)
בשגיאה שגיאת colorOnError לא רלוונטי (לבן) לא רלוונטי (red_900)
רקע android:colorBackground system_ניטרלי1_10 system_ניטרלי1_900
ברקע צבעעל רקע system_ניטרלי1_900 system_ניטרלי1_100
סוג המסך colorSurface system_ניטרלי1_10 system_ניטרלי1_900
על המשטח colorOnSurface system_ניטרלי1_900 system_ניטרלי1_100

חומר הלימוד יעדכן את מאפייני המצבים שלו עם הנקודות הבאות:

תפקיד הצבע מאפיין העיצוב של 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_ניטרלי1_900 system_ניטרלי1_100
שכבת על פני השטח colorOnSurfaceStateLayer system_ניטרלי1_900 system_ניטרלי1_100
תוכן מצב של וריאנט על פני השטח colorOnSurfaceVariantStateContent system_ניטרלי2_700 system_ניטרלי2_200
שכבת המצב של הווריאנט על פני השטח colorOnSurfaceVariantStateLayer system_ניטרלי2_700 system_ניטרלי2_200
התוכן של מצב השגיאה colorErrorStateContent אדום 800 אדום 200

שאלות נפוצות

חילוץ צבע

אחרי שמשתמש משנה טפט, האם חילוץ הצבע מתבצע באופן אוטומטי או שצריך להפעיל אותה ממקום כלשהו?

עם התיקונים של Android 12, חילוץ צבע הטפט מופעל כברירת מחדל.

הפקודה ThemeOverlayController.java מפעילה את הלוגיקה באמצעות ThemeOverlayController#mOnColorsChangedListener והקבוצה WallpaperManager#onWallpaperColorsChanged

לגבי טפטים מונפשים או טפטים לסרטונים, האם נוכל לדעת מתי כש��שתמשים באפשרות חילוץ צבע, המערכת משתמשת בצבע מהמסך? חלק מהמשתמשים ירצו צבעים מהפריים האחרון מאז שהוא מוצג בכל הזמן.

חילוץ הצבע מופעל כשהמשתמש מגדיר את הטפט או אחרי המסך במחזור החשמל (בתגובה ל-WallpaperEngine#notifyColorsChanged). האחרון האירוע WallpaperColors (מהטפט החי) מופעל אחרי המשתמש מכבה את המסך ומדליק אותו מחדש.

הכלי לבחירת עיצוב/טפטים

איך אפשר לאפשר לכלי לבחירת עיצוב להציג כמה צבעי מקור כדי שמשתמשים יוכלו לבחור מאשר בצבע בתדירות הגבוהה ביותר? יש דרך לקבל את הצבעים האלה מלוגיקת החילוץ?

כן. בבורר העיצובים, אפשר ColorScheme#getSeedColors(wallpaperColors: WallpaperColors)

בשמות של מכשירי Pixel יש תכונה של סמל נושא. האם היא כלולה שיתפת שלושה תיקונים? איך יצרני ציוד מקורי יכולים להטמיע את זה?

לא. סמלים מעוצבים הם בגרסת בטא והם לא זמינים ב-Android 12.

האם יש דרך להשתמש באפליקציית 'טפט Google' עם חילוץ צבע או הפעלת תכונות בחירה?

כן. ניתן להטמיע את התכונות בגרסה העדכנית ביותר של Google אפליקציית הטפט צריכה לבצע את שלבי השילוב שתוארו קודם לכן בדף הזה.

לפרטים נוספים, תוכלו לפנות למנהל החשבון הטכני (TAM).

Google יכולה לשתף את האפליקציה או את קוד המקור כדי שיצרני ציוד מקורי יוכלו להטמיע משלהם את האפליקציה או את קוד המקור של התצוגה המקדימה של הצבעים הדינמיים בתפריט ההגדרות, שנראית דומה לקטע התצוגה המקדימה באפליקציה 'בורר הטפטים' של Google?

המחלקות העיקריות שמשמשות את התצוגה המקדימה הן WallpaperPicker2 וגם Launcher3

מסך התצוגה המקדימה של הטפט הוא WallpaperSectionController

איך להטמיע את גרסת טרום-ההשקה (Preview) אחרי שינוי הצבע, כפי שמוצג באפליקציית Google טפטים?

אפליקציית בוחר הטפטים מצפה ש-ContentProvider יהיה זמין מ- מרכז אפליקציות (למרכז האפליקציות מבוסס Launcher3 יש אותו). התצוגה המקדימה זמינה לפי GridCustomizationsProvider במרכז האפליקציות, וצריך להפנות אליו בקטע 'הפעילות הראשית' של מרכז האפליקציות מטא-נתונים כ��י שאפליקציית הטפט והסגנון יוכלו לקרוא אותו. כל זה מיושם מרכז האפליקציות 3, וזמין ליצרני הציוד המקורי.