צבע דינמי

העיצוב של Material You הושק עם הגרסה של Android 12 והורחב עם Android 13.

בדף הזה נסביר על עדכונים בלוגיקה של Material You שיעזרו לכם לשלב תמיכה רחבה יותר בצבעים דינמיים.

לוחות צבעים טונליים דינמיים

החל מ-Android 12, יש תמיכה בלוחות הצבעים הדינמיים הבאים:

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

סגנונות עיצוב של צבע דינמי

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

  • TONAL_SPOT הוא לוח צבעים בגוון בינוני, שמשתמש בצבע system_accent3_0 שדומה לצבע system_accent1_0 (הוא הועבר מהגרסה של Android 12 ועבר התאמה קלה).
  • VIBRANT הוא לוח צבעים עם צבעים עזים שמשתלבים בצורה הרמונית עם שינויים עדינים בין הצבעים.
  • EXPRESSIVE הוא לוח צבעים עם צבעים עזים, שמשלב צבעים ייחודיים וצבעי יסוד לא צפויים.
  • SPRITZ הוא לוח צבעים עם רמת בהירות נמוכה שיוצר מעבר רך בין הצבעים.
  • RAINBOW משתמש גם בצבעים מודגשים וגם בצבעים ניטרליים כדי ליצור חוויית צבע עדינה יותר למשתמשים.
    • לא מומלץ להשתמש באפשרות הזו עם חילוץ צבעים שמבוסס על טפט, אלא להשתמש בה עם עיצובים סטטיים של צבעים.
  • FRUIT_SALAD מספק צבעים בגוונים שונים כדי לתת למשתמשים יותר אפשרויות להבעה.
    • לא מומלץ להשתמש באפשרות הזו עם חילוץ צבעים שמבוסס על טפט, אלא להשתמש בה עם עיצובים סטטיים של צבעים.

עיצוב המערכת נקבע לפי אותה הגדרה כמו ב-Android 12, כלומר Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES. ב-Android 13 נדרש רק מפתח אחד ב-JSON ששולח את צבע המקור ליצירת 65 לוחות הצבעים:

{
    "android.theme.customization.system_palette":"746BC1"
}

סגנון ברירת המחדל של העיצוב הוא TONAL_SPOT, אבל אפשר לציין אחד מסגנונות העיצוב האחרים באמצעות מפתח נוסף ב-JSON שלמעלה:

{
    "android.theme.customization.system_palette":"746BC1"
    "android.theme.customization.theme_style":"EXPRESSIVE"
}

שילוב של צבע דינמי

הנחיות לשילוב צבעים דינמיים מפורטות במאמר שילוב עיצוב של Material You.

שאלות נפוצות

מה נכלל ב-API של לוח הצבעים הדינמי?

  • יש חמש ערכות צבעים טונאליות:

  • בכל לוח צבעים טונאלי יש 13 ערכי צבעים שמסתיימים באינדיקטורים 0, ‏ 10, ‏ 50, ‏ 100,‏ 200, ‏ 300, ‏ 400, ‏ 500, ‏ 600, ‏ 700, ‏ 800, ‏ 900 ו-1, 000.

  • ה-API שנוצר הוא שילוב של שם לוח הצבעים הטונלי, שמסתיים במדד. לדוגמה: R.color#system_accent1_10

איך נוצרת ערכת צבעים דינמית?

צריך ליצור לוח צבעים דינמי של גוונים מצבע מקור יחיד, שצריך להפיק מהטפט באמצעות com.android.systemui.monet.ColorScheme#getSeedColors, שמספק כמה צבעים חוקיים של מקור. אם אף אחד מהצבעים שצוינו לא עומד בדרישות של צבע המקור, צריך להשתמש בערך 0xFF1B6EF3 בצבע המקור היחיד.