Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Mỗi nhóm bao gồm một bộ 13 màu với nhiều giá trị độ chói được xác định như mô tả tại R.color, nhưng với các giá trị sắc độ và sắc độ không xác định có thể được hệ thống Android tạo động trong thời gian chạy.
Kiểu giao diện cho màu động
Kể từ Android 13, 6 kiểu giao diện khác nhau được hỗ trợ với các biến thể về thuật toán màu động giúp duy trì nhu cầu của nhà phát triển và kỳ vọng về độ tương phản. Dưới đây là các giá trị được liệt kê để tạo 65 màu động mà ứng dụng sử dụng:
TONAL_SPOT là bảng màu có độ sống động trung bình, sử dụng màu system_accent3_0 tương tự như màu system_accent1_0 (được chuyển từ bản phát hành Android 12 và điều chỉnh một chút).
VIBRANT là một bảng màu sống động, kết hợp hài hòa sự thay đổi tinh tế giữa các màu.
EXPRESSIVE là một bảng màu sống động, kết hợp các màu nhấn độc đáo và bất ngờ với nhau.
SPRITZ là một bảng màu có độ sống động thấp, tạo ra hiệu ứng phủ màu mềm mại giữa các màu.
RAINBOW sử dụng cả điểm nhấn màu sắc và bề mặt trung tính để tạo ra trải nghiệm màu sắc tinh tế hơn cho người dùng.
Bạn KHÔNG NÊN sử dụng tính năng này với tính năng trích xuất màu dựa trên hình nền mà nên sử dụng với giao diện màu tĩnh.
FRUIT_SALAD cung cấp hai tông màu để giúp người dùng thể hiện nhiều cảm xúc hơn.
Bạn KHÔNG NÊN sử dụng tính năng này với tính năng trích xuất màu dựa trên hình nền mà nên sử dụng với giao diện màu tĩnh.
Giao diện hệ thống được điều khiển bằng chế độ cài đặt giống như trong Android 12, đó là Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES. Đối với Android 13, bạn chỉ cần một khoá trên JSON để gửi màu nguồn nhằm tạo 65 bảng màu:
Mỗi bảng sắc độ có 13 giá trị màu sắc kết thúc bằng các chỉ mục 0, 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 và 1000.
API thu được là sự kết hợp của tên bảng sắc độ, kết thúc bằng chỉ mục. Ví dụ:
R.color#system_accent1_10
Làm cách nào để tạo bảng sắc độ động?
Bạn phải tạo bảng sắc độ động từ một màu nguồn duy nhất được lấy từ hình nền bằng cách sử dụng com.android.systemui.monet.ColorScheme#getSeedColors. Phương thức này cung cấp nhiều màu nguồn hợp lệ. Nếu không có màu nào được cung cấp đáp ứng yêu cầu về màu nguồn, thì màu nguồn duy nhất phải sử dụng giá trị 0xFF1B6EF3.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-24 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-24 UTC."],[],[],null,["# Dynamic color\n\nMaterial You design was launched with the Android 12\nrelease and expanded with Android 13.\n\nThis page focuses on updates to the Material You logic to help you integrate\nwith richer dynamic color support.\n\nDynamic color tonal palettes\n----------------------------\n\nStarting with Android 12, the following dynamic color\ntonal palettes are supported:\n\n- [`system_accent1_0`](https://developer.android.com/reference/android/R.color#system_accent1_0)\n- [`system_accent2_0`](https://developer.android.com/reference/android/R.color#system_accent2_0)\n- [`system_accent3_0`](https://developer.android.com/reference/android/R.color#system_accent3_0)\n- [`system_neutral1_0`](https://developer.android.com/reference/android/R.color#system_neutral1_0)\n- [`system_neutral2_0`](https://developer.android.com/reference/android/R.color#system_neutral2_0))\n\nEach of them comprise of a set of 13 colors with defined various luminance\nvalues as described at\n[`R.color`](https://developer.android.com/reference/android/R.color),\nbut with undefined hue and chroma values that can be dynamically generated by\nthe Android system at runtime.\n\nTheme styles for dynamic color\n------------------------------\n\nStarting with Android 13, six different theme styles\nare supported with variations on the dynamic color algorithm that maintain\ndeveloper needs and contrast expectations. These are listed for generating the\n65 dynamic color used by apps:\n\n- `TONAL_SPOT` is a mid-vibrancy palette that uses an `system_accent3_0` color analogous to the `system_accent1_0` color (carried over from the Android 12 release and slightly adjusted).\n- `VIBRANT` is a high-vibrancy palette that harmoniously blends subtle shift between colors.\n- `EXPRESSIVE` is a high-vibrancy palette that pairs unexpected and unique accents colors together.\n- `SPRITZ` is a low-vibrancy palette that creates a soft wash between colors.\n- `RAINBOW` uses both chromatic accents and neutral surfaces to create a more subtle color experience for users.\n - This is **NOT RECOMMENDED** to be used with wallpaper-based color extraction and should instead be used with static color themes.\n- `FRUIT_SALAD` provides *two tone colors* to give users more expression.\n - This is **NOT RECOMMENDED** to be used with wallpaper-based color extraction and should instead be used with static color themes.\n\nThe system theme is driven by the same setting as it was in Android 12,\nwhich is `Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES`. For Android\n13, it requires only one key on its JSON that sends the\nsource color to generate the 65 color palettes: \n\n {\n \"android.theme.customization.system_palette\":\"746BC1\"\n }\n\nThe default theme style is `TONAL_SPOT`, but you can optionally specify one of\nthe other theme styles with an additional key with the JSON above: \n\n {\n \"android.theme.customization.system_palette\":\"746BC1\"\n \"android.theme.customization.theme_style\":\"EXPRESSIVE\"\n }\n\n| **Note:** You aren't required to expose ALL of the new theme styles in your UI, and can decide which to expose based on your user/brand needs. However, dynamic color palettes **MUST** be generated through one of these theme styles as CTS-tested by `SystemPaletteTest#testThemeStyles` and mandated by CDD.\n\nIntegrating dynamic color\n-------------------------\n\nFor guidelines on integrating dynamic color, see [Integrating Material You\nDesign](/docs/core/display/material).\n\nFrequently asked questions (FAQs)\n---------------------------------\n\n### What does the dynamic tonal palette API include?\n\n- There are five tonal palettes:\n\n - [`system_accent1`](https://developer.android.com/reference/android/R.color#system_accent1_0)\n - [`system_accent2`](https://developer.android.com/reference/android/R.color#system_accent2_0)\n - [`system_accent3`](https://developer.android.com/reference/android/R.color#system_accent3_0)\n - [`system_neutral1`](https://developer.android.com/reference/android/R.color#system_neutral1_0)\n - [`system_neutral2`](https://developer.android.com/reference/android/R.color#system_neutral2_0)\n- Each tonal palette has 13 color values ending in the indexes 0, 10, 50, 100,\n 200, 300, 400, 500, 600, 700, 800, 900, and 1000.\n\n- The resulting API is a combination of the tonal palette name, ending in the\n index. For example:\n [`R.color#system_accent1_10`](https://developer.android.com/reference/android/R.color#system_accent1_10)\n\n### How is a dynamic tonal pallet generated?\n\nA dynamic tonal palette must be generated from a single source color that should\nbe derived from wallpaper using\n`com.android.systemui.monet.ColorScheme#getSeedColors`, which provides multiple\nvalid source colors. If none of the provided colors meet the source color\nrequirement, the single source color should use the value `0xFF1B6EF3`."]]