Trang này cung cấp thông tin chi tiết về các tính năng nâng cao không bắt buộc cho tiện ích có sẵn kể từ Android 12 (API cấp 31). Đây là các tính năng không bắt buộc, nhưng rất dễ triển khai và cải thiện trải nghiệm của người dùng với tiện ích.
Sử dụng màu động
Kể từ Android 12, tiện ích có thể sử dụng màu giao diện của thiết bị cho các nút, nền và các thành phần khác. Điều này giúp chuyển đổi và đảm bảo tính nhất quán một cách mượt mà hơn trên các tiện ích.
Có hai cách để tạo màu động:
Sử dụng giao diện mặc định của hệ thống (
@android:style/Theme.DeviceDefault.DayNight
) trong bố cục gốc.Sử dụng giao diện Material 3 (
Theme.Material3.DynamicColors.DayNight
) từ thư viện Thành phần Material cho Android, có sẵn từ Thành phần Material cho Android phiên bản 1.6.0.
Sau khi đặt giao diện trong bố cục gốc, bạn có thể sử dụng các thuộc tính màu phổ biến trong phần tử gốc hoặc bất kỳ phần tử con nào của phần tử gốc đó để chọn màu động.
Sau đây là một số ví dụ về thuộc tính màu mà bạn có thể sử dụng:
?attr/primary
?attr/primaryContainer
?attr/onPrimary
?attr/onPrimaryContainer
Trong ví dụ sau đây sử dụng giao diện Material 3, màu giao diện của thiết bị là "tím nhạt". Màu nhấn và nền tiện ích sẽ điều chỉnh cho chế độ sáng và tối, như minh hoạ trong hình 1 và 2.
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimaryContainer"
android:theme="@style/Theme.Material3.DynamicColors.DayNight">
...
app:tint="?attr/colorPrimaryContainer"
android:src="@drawable/ic_partly_cloudy" />


Khả năng tương thích ngược cho màu động
Màu động chỉ có trên các thiết bị chạy Android 12 trở lên. Để cung cấp giao diện tuỳ chỉnh cho các phiên bản thấp hơn, hãy tạo một giao diện mặc định bằng màu tuỳ chỉnh và bộ hạn định mới (values-v31
) bằng cách sử dụng các thuộc tính giao diện mặc định.
Dưới đây là ví dụ về cách sử dụng giao diện Material 3:
/values/styles.xml
/values-v31/styles.xml