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

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

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

צבע דינמי

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

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

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

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

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

Material You Color Flow

איור 1. מעבר דינמי בין צבעים ב-Material You

  1. המשתמש משנה את הטפט או העיצוב באמצעות הבורר של יצרן הציוד המקורי.

  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.
  • stub של APK במערכת עם שם החבילה מוגדר בקובץ 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).

כדי שצבע המקור יהיה מתאים לשימוש, הוא צריך להיות בעל ערך Chroma מינימלי של CAM16 (שמחולץ מהטפט או שנבחר על ידי המשתמש) כ-5 לפחות. כך צבע המקור לא יושפע מגוונים כהים עדינים כשהוא עובר מצבע יחיד ל-65 צבעים טונליים והם נשארים מייצגים לבחירת המשתמש. כדי לקרוא ולשנות צבעים ב-CAM16, אפשר להשתמש ב-Cam#fromInt או ב-Cam#getInt.

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

  • כדי להשתמש בברירת המחדל של לוח הצבעים של Material, משביתים את האפשרות 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,‏ accent2,‏ accent3,‏ neutral1,‏ neutral2) והצבעים המתאימים שלהם (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 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 ועל השימוש בממשקי API ב-SysUI, אפשר לעיין במקורות מידע נוספים.

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

פיתוח גרסה ל-Android מגרסה 13 ואילך

החל מ-Android 13, ה-API 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"
}

גרסה ל-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 Components for Android כדי להציג צבעים דינמיים, אנחנו משתמשים ברשימת ההיתרים שמוגדרת בקוד כדי לזהות אילו מכשירים שילבו את התכונה לוחות צבעים דינמיים בגוונים.

תנועה

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

שימוש בגלילה מעבר לקצה המסך במערכת ההפעלה

ב-Android 12 יש תנועה דינמית ותגובה מהירה יותר של גלילה מעבר לקצה המסך, בצורת מתיחה של התצוגה. התנועה הזו מוצגת כשהמשתמש מנסה לגלול מעבר לקצה הרשימה. דוגמה מופיעה בהמשך:

גלילה מעבר לקצה ב-Material You

איור 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, כדאי להביא בחשבון את השינויים הבאים בממשק המשתמש:

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

    • כשמשתמשים נוגעים בתוכן בזמן שהאנימציה של EdgeEffect מתבצעת, הם אמורים לתפוס את האנימציה ולהיות מורשים לשנות את הכיוון שלה. הערך הנוכחי של משיכה זמין ב-EdgeEffectCompat.getDistance().

    • כדי לשנות את ערך ה-pull ולהחזיר את הסכום שנצרך, משתמשים ב-onPullDistance(). כך מפתחים יכולים לעבור בצורה חלקה ממתיחה לגלילה בזמן שהאצבע דוחפת את התוכן מעבר למיקום ההתחלה.

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

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

שימוש בתנודות (משוב מגע) במערכת ההפעלה

ב-Android 12 יש תנודות מגע רכות ועדינות יותר כדי לספק משוב למשתמשים בזמן הקשה למטה.

החומר שממנו עשוי הגל

איור 3. אפקט של מעגל גלים ב-Android 12, עם אנימציית מילוי רכה יותר

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

ווידג'טים

ווידג'טים הם רכיבים מרכזיים במכשירי Android. Android 12 כולל ממשקי API חדשים ויכולות API חדשות שכל יצרני הציוד המקורי (OEM) צריכים לתמוך בהן.

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

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

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

שימוש בצבעים של Material You

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

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

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

תפקיד הצבע מאפיין העיצוב של Android עיצוב בהיר
צבע דינמי
עיצוב כהה
צבע דינמי
ראשי colorPrimary system_accent1_600 system_accent1_200
בשירות 'ראשי' colorOnPrimary system_accent1_0 system_accent1_800
Secondary colorSecondary system_accent2_600 system_accent2_200
במסלול משני colorOnSecondary system_accent2_0 system_accent2_800
שגיאה שגיאת צבע לא רלוונטי (red_600) לא רלוונטי (red_200)
On Error colorOnError לא רלוונטי (לבן) לא רלוונטי (red_900)
רקע android:colorBackground system_neutral1_10 system_ניטרלי1_900
ברקע צבעעל רקע system_neutral1_900 system_neutral1_100
Surface colorSurface system_neutral1_10 system_ניטרלי1_900
ב-Surface 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_ניטרלי1_100
בתוכן של מצב וריאנט מוצג colorOnSurfaceVariantStateContent system_neutral2_700 system_neutral2_200
בשכבת המצב של הווריאנט שמוצג colorOnSurfaceVariantStateLayer system_neutral2_700 system_ניטרלי2_200
תוכן של מצב שגיאה colorErrorStateContent red800 red200

שאלות נפוצות

חילוץ צבעים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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