在 2021 年的 I/O 大會上,我們展示了 Material Design 大膽而富有表現力的演變。Material Design 3 在 Material Design Primary 顏色和 Secondary 顏色的基礎上,引入了 Tertiary 顏色和附加色槽,用于驗證無障礙訪問功能并保障顯示的和諧性。在本篇文章中,我們將為您展示更多有關 Material You 動態配色的內容,包括動態配色是什么,以及如何在您的應用中實現它。
動態配色Material You 通過動態配色,將顏色重新定義為更加個性化的體驗。那么,什么是動態配色?Android 12 可以通過動態配色提取算法來選擇顏色值,基于動態配色,您可根據用戶的桌面壁紙顏色生成自定義調色板。動態的淺、深色方案可體現在整個用戶系統界面,以及某些應用中。這些方案將根據用戶偏好和視覺需求進行更改或調整。動態配色是一種算法系統,支持個性化顏色體驗的同時還尊重蘊含品牌標識或具有傳統意義的顏色,如綠色代表 "Go",紅色代表 "Stop"。
動態配色的原理首先,它從用戶的壁紙上提取一種源顏色,并推算出五種關鍵顏色,然后將每個關鍵顏色轉化為由 13 種色調組成的調色板。接下來,它會為從調色板中選擇的顏色分配一組特定的角色和值,并將這些角色和值映射到我們稱之為 "方案"的組件上。

△從壁紙中提取關鍵顏色
配色方案
配色方案可視為一組拼合在一起的相關色調,而非一組固定不變的值。每種色調都會生成一組淺、深色方案,這些方案將根據偏好和視覺需求進行更改或調整。Error 顏色也會自動分配到相應色槽中。界面需要的每個顏色角色,都會經歷這個過程: 通過元素之間的適當對比,從關鍵顏色派生出來。這些顏色角色就是您在設計中要映射到的內容。

△不同顏色的淺深色方案
您可能已經熟悉了目前的 12 個顏色槽,比如其中的 Primary 色調和 On Primary 色調。在 Material Design 3 (或簡稱為 M3) 中,我們在設計方案里引入了新調色板和角色,您可將 Container 顏色及其對應的 On Container 顏色,用于無需像非容器元素那樣強調的界面元素。另外,新的 Tertiary 顏色調色板,則用于為您的產品帶來更廣泛的色彩表現力。
△新增的 Container 及 Tertiary 顏色色槽
Token
使用動態配色,意味著我們需要使用會在運行時改變的值構建界面,這就需要我們根據語義,而非硬編碼的值來引用顏色。那么如何使這一切成為可能呢?方法是使用 Token。Token 在 Material Design 2 顏色角色的基礎上,提供了全局的樣式色槽,它能夠幫您更改與顏色級聯一致的角色分配。
△在界面中使用 Token
Token 可以有多種類型,它可以與某個值配對或引用另一個 Token。在使用了 M3 后,我們就有了調色板、色彩引用和系統 Token 三個概念。您創建的顏色角色是系統 Token,它們可以繼承我們在調色板中引用的 Token,包括 Primary、Secondary、Tertiary、Neutral、Neutral Variant 以及 Error 顏色。
設計 Token 使得整個產品更具靈活性和一致性,它允許設計師們為界面中元素指定顏色角色,而非設定一個用于實現的值。生成設計 Token 時可通過確定一個單一事實來源,來節省開發者和設計師的時間。例如,開發者可以引用設計 Token 文件以映射到 Compose 中的主題對象;而如果您在代碼中更改了 Token,則可以與設計師共享這些更改,以便設計師在其設計中更新這些值。

△使用 Token 為界面元素指定顏色角色
通過使用 Token 替代顏色和排版的硬編碼值,您可以更輕松地對設計進行迭代。色調調色板中的顏色可通過設計 Token 映射到淺、深色彩方案中,同時顏色方案的值也可以被重寫,以便繼承自定義顏色或其他色彩引用的 Token。
您可以利用這些帶有 Token 的顏色映射,將用戶生成的顏色轉變為動態且富有表現力的界面。當系統顏色在運行過程中發生變化時便會更新調色板以及配色方案,而后者便是您映射到主題背景和組件的配色方案。在相應的組件上使用正確的顏色規則,以確保可以無障礙訪問和風格的連續性,這是至關重要的一點。

△相同的 Token,不同的色值
無障礙訪問
但是這些 Token 本身如何確保色彩的無障礙訪問?由于配色方案是由調色定義的,而非色調或十六進制值,所以,為了使任何配色方案在默認情況下均可滿足無障礙訪問,顏色組合要基于亮度來滿足無障礙使用的標準。
如下圖所示,在亮度接近時,盡管兩種顏色的色調并不相同,但調色卻非常相似。這樣的色彩組合使得對比度過低,而對于有一定程度色盲的人來說更是如此。如果對組件應用這樣的色彩組合,則會導致無法滿足無障礙訪問。因此,為了保證顏色在無障礙層面的可及性,所有成對顏色均存在 60 的亮度差。
自定義擴展
動態配色讓個人設備變得更為個性化。一旦您在產品界面中加入個性化設置,用戶將比以往任何時候都能更好地控制他們的設備。通過使用動態配色和 M3 配色方案,用戶壁紙將能夠影響應用的配色方案,您的應用顏色會自動適應與集成用戶的壁紙顏色。這對于您應用的配色來講,也許是一種全新思維方式。但我們如今所創建的數字化產品,會反映出現實生活中的產品趨勢,這意味著更多個性化的色彩、圖案和元素。在我們需要一套配色時,如果您覺得自己的調色板不合適或缺少可用資源時,動態配色可為您提供用戶喜歡的、現成的、可無障礙訪問的調色板。
我們充分理解,您可能需要品牌配色方案成為用戶矚目的焦點,所以最新的配色系統可以在支持無障礙訪問的同時融入應用的顏色背景。您可以使用自己的品牌和設計系統顏色創造出和諧的、可無障礙訪問的調色板。M3 支持自定義參數的系統化應用,這有助于您定義和維護品牌。在 Android 應用上,自定義配色方案也可以作為禁用動態配色后的備用方案。不過,無論是使用動態配色,還是自定義配色,要將您的 Android 應用遷移并使用 Material 3,您首先需要遷移到基礎顏色或 M3 自定義方案來訪問新的 Token。
△M3 基礎顏色角色
我們始終鼓勵您利用 Material Design 并根據需要進行擴展。M3 的顏色系統可以與自定義組件和品牌風格相結合,通過自動處理關鍵調整,滿足無障礙訪問的顏色對比度,保障易讀性、交互狀態和組件結構。
遷移至 Material 3接下來向您介紹如何將應用遷移至 Material 3。遷移的第一步是引用新 Token 并將其與應用中的組件連接。Material 3 的排版、形狀和顏色文件與 Material 2 十分類似,請您確保獲取到最新基礎顏色或自定義品牌方案并設置值。
Material Theme BuilderM3 中有一些新的 Token 需要注意,例如 Primary、Secondary、Tertiary Container 以及 On Variants 系列顏色。對您來說,管理這些顏色可能非常費力,因此我們創建了一個名為 Material Theme Builder 的工具來為您生成這些內容。您可在網頁中打開它并點擊 "Custom",然后點擊 "Export for Compose"。
如您有自定義顏色,可將其添加為擴展顏色。我們可以打開該工具并切換到 "Custom"標簽頁,在 Material Theme Builder 中您可以識別并輸入一種或多種品牌顏色,這些顏色將用于定義調色板,通過添加特定顏色可確定每個調色板的生成方式。如下圖所示,您可在左側輸入品牌的關鍵顏色,每種顏色都會分配到相應的關鍵顏色角色,具體情況視其在界面中的用途而定。如果您有現成的應用,您可以使用 Material 2 中的顏色配置 Primary 和 Secondary 顏色。隨后,您可以點擊右上角的導出代碼菜單,然后在下拉列表中選擇 "Compose"。

△自定義顏色方案
最后,您可將這些文件直接放入 Android Studio,并在必要時更新軟件包。這一操作將更新顏色、排版和主題背景文件,更新代碼后您即可運行應用來查看組件映射的新品牌主題背景。
使用動態配色
您可使用上述的網頁工具,預覽基于源顏色或圖像生成的各種方案。接下來,我們將討論如何基于用戶所選圖像所生成的顏色更新應用。請您打開 Kotlin 文件 theme,并添加檢查來查看您是否有使用動態配色,然后您可以根據條件返回由系統調色板創建的深淺方案顏色。
添加上述代碼后,即可在設備上運行應用并更改壁紙,此時將顯示用戶生成的用于主題背景的顏色。您可添加一個切換開關,以便用戶在動態或自定義的主題背景之間進行切換,這兩種方案都提供了深色和淺色兩種方案供用戶選擇。val dynamic = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
val colorScheme = if (dynamic) {
val context = LocalContext.current
if (dark) dynamicLightColorScheme (context) else dynamicDarkColorScheme (context)
} else {
// 使用 lightColorScheme、darkColorScheme 等
}
您可以有選擇地應用動態配色,并與品牌配色方案同時生效。例如,個人資料或帳戶界面可展示個人的用戶顏色,使重要的時刻變得個性化;如果您有語義顏色,則不必將其排除在外,而是可以將其包含在準備實現的其他顏色之內。這意味著您可為應用的主要主題、語義上的擴展顏色,甚至品牌顏色使用動態配色;或者您使用自己豐富的顏色庫。
△配色方案隨用戶設置的壁紙變化
結語
憑借動態、品牌化的主題,Material You 能夠體現用戶對于顏色的選擇,幫助您構建出色且富有表現力的應用;同時設計 Token 也有助于開發者和設計師的協作。我們十分期待看到您構建的應用!有關動態配色的更多信息,請使用 Material Theme Builder 或安裝 Figma 插件,該插件可與更新的 M3 設計工具包配合使用。您可通過瀏覽 Figma 社區獲得該插件,從而實現動態配色的可視化,并創建自定義配色方案。原文標題:借助 Material You 動態配色豐富您的應用
文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
Google
+關注
關注
5文章
1788瀏覽量
58753 -
動態
+關注
關注
0文章
71瀏覽量
20910 -
Material
+關注
關注
0文章
7瀏覽量
6405
原文標題:借助 Material You 動態配色豐富您的應用
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
GPIO中斷相關內容 精選資料分享
簡單描述一下Arduino相關內容
串口硬件和協議的相關內容
高云半導體時序約束的相關內容
淺析彈簧管壓力儀表的相關內容
Material Design指南中更新的相關內容
如何應用Material Design 3和Material You
AXI_GP接口和AXI_HP接口的相關內容
LDO相關內容介紹

評論