צבע דינמי

העיצוב של 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 Design.

שאלות נפוצות

מה נכלל ב-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 בצבע המקור היחיד.