Chất liệu Bạn thiết kế

Bắt đầu từ Android 12, thiết kế Material You tập trung vào sự thể hiện và tính linh hoạt trong hệ điều hành Android, với mục tiêu giúp người dùng tạo và sở hữu một trải nghiệm duy nhất, gắn kết đáp ứng nhu cầu của họ. Với tư cách là đối tác của Android, bạn được khuyến khích kết hợp Material You thiết kế vào thiết bị Android của mình trong các lĩnh vực sau:

  • Màu động
  • Cử động
  • Widget

Màu động

Màu sắc sống động là trọng tâm của thiết kế Material You và là một phần quan trọng trong chiến lược nhiều năm của Android nhằm mang lại khả năng tùy chỉnh đơn giản và sâu hơn cho người dùng theo cách mà không có thiết bị nào khác làm được. Tài liệu bạn cung cấp:

  • Người dùng và nhà phát triển có một câu chuyện cá nhân hóa phong phú, nhất quán có sẵn trên mọi thiết bị Android.

  • Các OEM Android có cơ hội tiếp tục đổi mới giao diện người dùng hệ thống và các ứng dụng của bên thứ nhất theo cách phù hợp với phần cứng và màu sắc thương hiệu, kiểu dáng và hình thức của họ.

Để tận dụng màu sắc động, hãy sử dụng câu chuyện trích xuất màu của Android 12 Material You như một phần quan trọng trong việc cung cấp phần mềm cho người dùng. Trên thiết bị, hãy sử dụng logic trích xuất màu trong AOSP, đặc biệt là logic lấy màu nguồn của một hình nền hoặc chủ đề duy nhất và xuất màu đó thông qua 65 API màu. Để biết các yêu cầu về màu động, hãy xem Sử dụng Màu động .

Luồng màu động đầy đủ bao gồm bốn bước, như minh họa bên dưới:

Chất Liệu Màu Sắc Của Bạn

Hình 1. Chất liệu của dòng màu động

  1. Người dùng thay đổi hình nền hoặc chủ đề thông qua bộ chọn OEM.

  2. Người dùng chọn một trong các tùy chọn sau:

    • Chủ đề thiết bị. Khi được chọn, Android sẽ tự động chọn một màu nguồn duy nhất đáp ứng yêu cầu.

    • Hình nền + chủ đề mới. Khi được chọn, logic AOSP sẽ tự động chọn một màu nguồn duy nhất từ ​​hình nền đã chọn.

  3. AOSP mở rộng màu nguồn đơn thành 5 bảng tông màu với 13 biến thể tông màu mỗi bảng, theo logic AOSP, sau đó điền vào 65 thuộc tính màu.

  4. Giao diện người dùng ứng dụng sử dụng 65 thuộc tính màu theo cách nhất quán trên hệ sinh thái ứng dụng Android. Bạn được khuyến khích sử dụng cùng một bảng màu cho giao diện người dùng hệ thống của thiết bị và các ứng dụng dành riêng cho OEM.

Bản vá Android 12

Để có được logic toàn diện cho việc trích xuất màu hình nền và cho phép thiết bị điền API 65 màu theo cách phù hợp với hệ sinh thái, hãy đưa các bản vá sau vào quá trình triển khai Android 12 của bạn:

Chỉ định màu tùy chỉnh trên ThemePicker

Nếu bạn đang sử dụng ứng dụng AOSP ThemePicker, ứng dụng WallpaperPicker sẽ hiển thị phần màu nếu đáp ứng cả hai điều kiện sau:

  • flag_monet trên frameworks/base/packages/SystemUI/res/values/flags.xmltrue .
  • APK sơ khai hệ thống có tên gói được xác định trong themes_stub_package trong packages/apps/ThemePicker/res/values/override.xml .

Định dạng APK sơ khai

Bạn có thể tìm thấy phiên bản mẫu của APK này trong packages/apps/ThemePicker/themes .

APK này chỉ được chứa tài nguyên, nêu chi tiết các màu cơ bản có sẵn và tên của chúng.

Sơ khai phải chứa tệp XML dưới res/xml với định dạng sau:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="color_bundles">
        <item>color1</item>
        <item>color2</item>
        <item>color3</item>
        <item>color4</item>
    </array>

    <string name="bundle_name_color1">Blue</string>
    <string name="bundle_name_color2">Red</string>
    <string name="bundle_name_color3">Yellow</string>
    <string name="bundle_name_color4">Green</string>

</resources>

Trong tệp này, mỗi item trong color_bundles có một tên riêng biệt, miễn là các chuỗi bên dưới được đặt tên là bundle_name_ item .

Phải có chuỗi bundle_name_ item cho mỗi màu, kèm theo tên mô tả cho mỗi màu. Chúng có thể được dịch bằng cách thêm các chuỗi đã dịch tương ứng vào thư mục res/values- language code .

Các giá trị màu thực tế có thể nằm trên cùng một XML hoặc trên một tệp XML tài nguyên riêng biệt có định dạng sau:

<resources>
    <color name="color_primary_color1">#0000FF</color>
    <color name="color_secondary_color1">#0000FF</color>

    <color name="color_primary_color2">#ff0000</color>
    <color name="color_secondary_color2">#ff0000</color>

    <color name="color_primary_color3">#ffff00</color>
    <color name="color_secondary_color3">#ffff00</color>

    <color name="color_primary_color4">#00ff00</color>
    <color name="color_secondary_color4">#00ff00</color>
</resources>

Đối với mỗi mục trong mảng gói màu, phải có color_primary_ itemcolor_secondary_ item (và cả hai màu phải có cùng màu). Giá trị cho các mục color này là mã màu thực tế cho từng màu sẽ hiển thị trong phần màu cơ bản .

Bước 1: Xây dựng trải nghiệm theo chủ đề người dùng

Bộ chọn chủ đề là nơi người dùng tương tác với các khả năng cá nhân hóa Material You mới và có thể chọn giữa các tùy chọn màu sắc hoặc cài đặt trước. Vì nó phù hợp với sản phẩm và nhân khẩu học của người dùng, bạn có thể cung cấp cho người dùng trải nghiệm màu sắc và cá nhân hóa phong phú hơn thông qua việc sử dụng bộ chọn chủ đề hoặc bộ chọn hình nền .

  • Khi sử dụng bộ chọn hình nền, tính năng trích xuất màu hình nền được bật theo mặc định. Tuy nhiên, bạn có thể thực hiện một số tùy chỉnh đối với bộ chọn để cung cấp nhiều tùy chọn hơn cho người dùng.

Bước 2: Tách màu giấy dán tường thành màu nguồn

Để bật trích xuất màu hình nền, hãy chọn các bản vá Android 12 được liệt kê ở trên (chức năng này sẽ được bật theo mặc định trong bản phát hành AOSP trong tương lai). Logic AOSP kích hoạt trích xuất hình nền bắt đầu tại frameworks/base/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java , trên ThemeOverlayController#mOnColorsChangedListener , thông qua WallpaperManager#onWallpaperColorsChanged . Chúng tôi khuyên bạn nên sử dụng logic AOSP chưa sửa đổi để đảm bảo trải nghiệm phát triển nhất quán.

Theo mặc định, logic chọn màu có tần số cao nhất phù hợp để sử dụng. Để tận dụng các màu nguồn khác được thuật toán trả về và hiển thị các màu đó cho người dùng trong bộ chọn chủ đề, hãy sử dụng ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) .

Để phù hợp để sử dụng, màu nguồn (dù được trích xuất từ ​​hình nền hoặc giá trị đặt trước do người dùng chọn) phải có giá trị sắc độ CAM16 tối thiểu là 5; điều này đảm bảo rằng màu nguồn không bị ảnh hưởng bởi các tông màu tối tinh tế khi nó được chuyển đổi từ một màu thành 65 màu sắc và vẫn đại diện cho sự lựa chọn của người dùng. Để đọc và sửa đổi màu trong CAM16, hãy sử dụng Cam#fromInt hoặc Cam#getInt .

Sử dụng bảng màu không động Đối với các thiết bị không hỗ trợ trích xuất màu hình nền, bạn vẫn có thể đảm bảo rằng các ứng dụng của Google và ứng dụng bên thứ ba hỗ trợ màu động trông đẹp mắt bằng cách thực hiện như sau:

  • Sử dụng bảng Material mặc định bằng cách tắt flag_monet trên frameworks/base/packages/SystemUI/res/values/flags.xml .
  • Đảm bảo người dùng vẫn có thể cá nhân hóa hệ điều hành của mình bằng cách sử dụng bộ chọn chủ đề cài sẵn.

Bước 3: Mở rộng màu nguồn thành API màu

Bằng cách sử dụng màu nguồn duy nhất lấy từ bước trước, Android tạo ra 5 bảng màu riêng biệt (dấu 1-3, màu trung tính 1-2), mỗi bảng màu bao gồm 13 màu và mỗi màu bao gồm các giá trị độ sáng khác nhau (0 đến 1000), cho một tổng cộng 65 màu. Logic được cung cấp trong các bản vá Android 12 triển khai tính năng mở rộng màu này một cách chính xác; các chi tiết được cung cấp dưới đây mô tả việc thực hiện.

Để đảm bảo tính nhất quán cho nhà phát triển, 5 bảng màu (accent1, Accent2, Accent3, Neutral1, Neutral2) và 13 màu tương ứng của chúng phải dựa trên một màu nguồn duy nhất với các thay đổi tương ứng đối với giá trị sắc độ và sắc độ CAM16 như được viết bên dưới:

  • system_accent1

    • Màu sắc: sử dụng "40" cho các biến thể màu kết thúc bằng 0 , 10 , 50100 , nếu không thì "48"
    • Huế: giống như nguồn
  • system_accent2

    • Sắc độ: sử dụng "16"
    • Huế: giống như nguồn
  • system_accent3

    • Sắc độ: sử dụng "32"
    • Huế: xoay 60 độ dương
  • system_neutral1

    • Sắc độ: sử dụng "4"
    • Huế: giống như nguồn
  • system_neutral2

    • Sắc độ: sử dụng "8"
    • Huế: giống như nguồn

CTS bao gồm các thử nghiệm để xác thực các lệnh gọi API độ chói và màu sắc. Để chạy, hãy sử dụng atest SystemPalette .

Bước 4: Sử dụng màu động trong ứng dụng và Giao diện người dùng hệ thống

Sau khi màu động được đặt trên thiết bị, các ứng dụng sẽ tuân theo nguyên tắc Material để sử dụng màu. Nguyên tắc quan trọng sẽ được phát hành trên Material.io trước ngày 26 tháng 10 năm 2021 để các ứng dụng của bên thứ ba áp dụng. Đối với Giao diện người dùng hệ thống và ứng dụng của bên thứ nhất, chúng tôi thực sự khuyên bạn nên tích hợp màu sắc động trong suốt trải nghiệm người dùng theo cách phù hợp với phần cứng và thương hiệu của bạn, đồng thời giúp bạn phân biệt các thiết bị của mình.

Để biết hướng dẫn chung về màu động, hãy xem phần sau:

  • Sử dụng màu nhấn cho các thành phần nền trước trong ứng dụng và Giao diện người dùng hệ thống:

    @android:color/system_accent1_0 … 1000 // most-used foreground color group
    @android:color/system_accent2_0 … 1000 // alternate accent, used for surfaces
    @android:color/system_accent3_0 … 1000 // playful, analogous color
    
  • Sử dụng màu trung tính cho các thành phần nền trong ứng dụng và Giao diện người dùng hệ thống:

    @android:color/system_neutral1_0 … 1000 // most-used background color group
    @android:color/system_neutral2_0 … 1000 // used for higher-elevation surfaces
    

Để biết thêm thông tin về cách Material You ánh xạ màu sắc và cách sử dụng API trong SysUI, hãy xem Tài nguyên bổ sung .

Bước 5: Thêm tùy chọn màu động trong triển khai AOSP WallpaperPicker của bạn

Bản dựng cho Android 13 trở lên

Kể từ Android 13, android.theme.customization.accent_color không được dùng nữa. Một thuộc tính mới android.theme.customization.theme_style được thêm vào để hỗ trợ các biến thể màu khác nhau. Chúng tôi hiện có bốn biến thể trong cơ sở mã như sau:

TONAL_SPOT = Default Material You theme since Android S.
VIBRANT = Theme where accent 2 and 3 are analogous to accent 1.
EXPRESSIVE = Highly chromatic theme.
SPRITZ = Desaturated theme, almost grayscale.

Chúng được gửi đến Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES , như được hiển thị trong JSON bên dưới:

{
    "android.theme.customization.system_palette":"B1611C",
    "android.theme.customization.theme_style":"EXPRESSIVE"
}

Bản dựng dành cho Android 12 trở xuống

Khi sử dụng bộ chọn chủ đề tùy chỉnh, thiết bị phải gửi màu nguồn hợp lệ tới Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES bằng cách cung cấp tệp JSON ở định dạng sau (trong đó 746BC1 là màu nguồn hợp lệ mẫu):

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

Việc thực hiện này sẽ bỏ qua việc trích xuất màu hình nền (Bước 2) và trực tiếp mở rộng màu nguồn được cung cấp thành 65 thuộc tính màu (Bước 3).

Bước 6: Gửi yêu cầu

Bên cạnh việc tích hợp hệ thống, bạn cần gửi yêu cầu và cho chúng tôi biết tên thương hiệu của bạn ( Build.MANUFACTURER ). Vì hầu hết các ứng dụng của bên thứ 3 đều sử dụng Thành phần Material dành cho Android để hiển thị màu sắc động nên chúng tôi đang sử dụng danh sách cho phép được mã hóa cứng để cho biết thiết bị nào đã tích hợp tính năng Bảng tông màu động .

Cử động

Chuyển động mượt mà khiến thiết bị có cảm giác hiện đại và cao cấp. Để xây dựng và duy trì niềm tin cũng như sự hài lòng của nhà phát triển, cuộn quá mức và gợn sóng là hai phần quan trọng của chuyển động linh hoạt cần có vẻ ngoài và cảm giác nhất quán.

Sử dụng tính năng ghi đè trong hệ điều hành của bạn

Android 12 bao gồm chuyển động cuộn quá mức linh hoạt, phản hồi nhanh hơn dưới dạng kéo dài chế độ xem, hiển thị khi người dùng cố gắng cuộn qua mép danh sách. Một ví dụ đã được biểu diễn ở dưới:

Tài liệu bạn cuộn quá mức

Hình 2. Hiệu ứng cuộn quá mức của Android 12, như trong Cài đặt

Để đảm bảo tính nhất quán cho nhà phát triển, hãy đảm bảo rằng hiệu ứng cuộn quá mức tổng thể trên thiết bị của bạn tương tự như sau:

  • Trên các thiết bị trả về giá trị true cho ActivityManager.isHighEndGfx() , hiệu ứng cuộn quá mức là độ giãn phi tuyến tính của màn hình (như minh họa ở trên).

  • Trên các thiết bị có hiệu suất thấp hơn, hiệu ứng kéo dài được đơn giản hóa thành kéo dài tuyến tính (để giảm tải cho hệ thống).

Sử dụng tính năng cuộn quá mức trong ứng dụng của bên thứ nhất

Khi sử dụng chế độ xem tùy chỉnh, bạn có thể cần điều chỉnh một số ứng dụng và giao diện người dùng hệ thống sử dụng hiệu ứng kéo dài.

  • Để hỗ trợ kéo dài quá mức, hãy nâng cấp lên các thư viện mới nhất:

    • androidx.recyclerview:recyclerview:1.3.0-alpha01 cho RecyclerView
    • androidx.core:core:1.7.0-alpha01 cho NestedScrollViewEdgeEffectCompat
    • androidx.viewpager:viewpager:1.1-alpha01 cho ViewPager
  • Đối với bố cục tùy chỉnh sử dụng EdgeEffect , hãy xem xét các thay đổi UX sau:

    • Với tính năng cuộn quá mức kéo dài, người dùng không nên tương tác với nội dung của bố cục khi bố cục đang bị kéo dài. Người dùng chỉ nên tự thao tác với phần kéo dài và không thể nhấn nút trong nội dung.

    • Khi người dùng chạm vào nội dung trong khi hoạt ảnh EdgeEffect đang diễn ra, họ sẽ bắt được hoạt ảnh và được phép thao tác kéo dài. Giá trị kéo hiện tại có sẵn từ EdgeEffectCompat.getDistance() .

    • Để thao tác giá trị kéo và trả về số tiền đã tiêu thụ, hãy sử dụng onPullDistance() . Điều này cho phép các nhà phát triển chuyển đổi mượt mà từ kéo dài sang cuộn khi ngón tay kéo nội dung qua vị trí bắt đầu.

    • Khi làm việc với thao tác cuộn lồng nhau, nếu nội dung bị kéo giãn, thao tác kéo dài sẽ thực hiện chuyển động chạm trước nội dung được lồng nhau, nếu không, thao tác lồng nhau có thể cuộn khi ngón tay thay đổi hướng thay vì nhả thao tác kéo giãn.

Để biết chi tiết về cuộn quá mức, hãy tham khảo Tạo hiệu ứng cho cử chỉ cuộn .

Sử dụng gợn sóng (phản hồi chạm) trong hệ điều hành của bạn

Android 12 bao gồm cảm ứng gợn nhẹ nhàng hơn, tinh tế hơn để cung cấp phản hồi cho người dùng khi nhấn xuống.

Chất Liệu Bạn Gợn Sóng

Hình 3. Hiệu ứng gợn sóng của Android 12, với hoạt ảnh lấp đầy nhẹ nhàng hơn

Để nhà phát triển có thể dự đoán và mang lại trải nghiệm tuyệt vời cho người dùng, hãy đảm bảo rằng hiệu ứng lan truyền trên thiết bị của bạn tương tự như ví dụ được hiển thị ở trên. Mặc dù không cần thực hiện bất kỳ bước tích hợp cụ thể nào để hỗ trợ hiệu ứng gợn sóng, nhưng bạn nên kiểm tra hiệu ứng trên thiết bị của mình để kiểm tra xem có bất kỳ sự hồi quy ngoài ý muốn nào được đưa ra trong quá trình triển khai của bạn hay không.

Widget

Widget là thành phần chính của thiết bị Android. Android 12 bao gồm các API mới và khả năng API mà tất cả các OEM đều phải hỗ trợ.

Tài nguyên bổ sung

Sử dụng màu SysUI

(giọng1 = A1, giọng2 = A2, giọng3 = A3, trung tính1 = N1, trung tính2 = N2)

Chất liệu bạn sử dụng màu sắc

Hình 4. Sử dụng màu động trong Giao diện người dùng hệ thống

Cập nhật thuộc tính màu của thư viện vật liệu

Material sẽ cập nhật các thuộc tính chủ đề trong bản phát hành sắp tới bằng cách tạo các vai trò màu dùng để cung cấp màu cho các chế độ xem cụ thể.

Vai trò màu sắc Thuộc tính chủ đề Android Chủ đề nhẹ nhàng
Màu động
Chủ đề tối
Màu động
Sơ đẳng màuChính system_accent1_600 system_accent1_200
Trên Chính colorOnPrimary system_accent1_0 system_accent1_800
Sơ trung màu sắcTrung học system_accent2_600 system_accent2_200
Trên Trung học colorOnTrung học system_accent2_0 system_accent2_800
Lỗi lỗi màu sắc Không áp dụng (red_600) Không áp dụng (đỏ_200)
Có lỗi colorOnError Không áp dụng (màu trắng) Không áp dụng (red_900)
Lý lịch android:màuNền hệ thống_trung lập1_10 system_neutral1_900
Trên nền màu sắc trên nền system_neutral1_900 hệ thống_trung lập1_100
Bề mặt màu sắcBề mặt hệ thống_trung tính1_10 system_neutral1_900
Trên bề mặt màu sắcOnSurface system_neutral1_900 hệ thống_trung tính1_100

Material sẽ cập nhật các thuộc tính trạng thái của nó với các con trỏ sau:

Vai trò màu sắc Thuộc tính chủ đề Android Chủ đề nhẹ nhàng
Màu động
Chủ đề tối
Màu động
Nội dung trạng thái chính màuPrimaryStateNội dung system_accent1_700 system_accent1_200
Lớp trạng thái chính màuPrimaryStateLayer system_accent1_600 system_accent1_300
Nội dung trạng thái thứ cấp màuThứ cấpTrạng tháiNội dung system_accent2_700 system_accent2_200
Lớp trạng thái thứ cấp màuThứ cấpStateLayer system_accent2_600 system_accent2_300
Về nội dung trạng thái chính colorOnPrimaryStateNội dung system_accent1_0 system_accent1_800
Trên lớp trạng thái chính colorOnPrimaryStateLayer system_accent1_900 system_accent1_800
Về nội dung trạng thái thứ cấp colorOnSecondaryStateNội dung system_accent2_0 system_accent2_800
Trên lớp trạng thái thứ cấp colorOnSecondaryStateLayer system_accent2_900 system_accent2_800
Về nội dung trạng thái vùng chứa chính colorOnPrimaryContainerStateContent system_accent1_900 system_accent1_900
Trên lớp trạng thái vùng chứa chính colorOnPrimaryContainerStateLayer system_accent1_900 system_accent1_900
Về nội dung trạng thái vùng chứa thứ cấp colorOnSecondaryContainerStateContent system_accent2_900 system_accent2_900
Trên lớp trạng thái vùng chứa thứ cấp colorOnSecondaryContainerStateLayer system_accent2_900 system_accent2_900
Về nội dung trạng thái vùng chứa cấp ba colorOnTertiaryContainerStateContent system_accent3_900 system_accent3_900
Trên lớp trạng thái vùng chứa cấp ba colorOnTertiaryContainerStateLayer system_accent3_900 system_accent3_900
Nội dung trạng thái bề mặt colorOnSurfaceStateNội dung system_neutral1_900 hệ thống_trung tính1_100
Trên lớp trạng thái bề mặt colorOnSurfaceStateLayer system_neutral1_900 hệ thống_trung tính1_100
Nội dung trạng thái biến thể trên bề mặt colorOnSurfaceVariantStateContent system_neutral2_700 system_neutral2_200
Trên lớp trạng thái biến thể bề mặt colorOnSurfaceVariantStateLayer system_neutral2_700 system_neutral2_200
Nội dung trạng thái lỗi màuErrorStateNội dung đỏ800 đỏ200

Câu hỏi thường gặp

Chiết xuất màu

Khi người dùng thay đổi hình nền, quá trình trích xuất màu có tự động được thực hiện hay nó cần được kích hoạt từ đâu đó?

Với các bản vá Android 12 , tính năng trích xuất màu hình nền được bật theo mặc định .

ThemeOverlayController.java kích hoạt logic bằng ThemeOverlayController#mOnColorsChangedListenerWallpaperManager#onWallpaperColorsChanged .

Đối với Hình nền động hoặc Hình nền video , chúng ta có thể biết khi nào Trích xuất màu lấy màu từ màn hình không? Một số người dùng có thể muốn màu sắc từ khung hình cuối cùng vì nó hiển thị nhiều nhất.

Trích xuất màu được kích hoạt khi người dùng đặt hình nền hoặc sau một chu kỳ bật nguồn màn hình (để phản hồi WallpaperEngine#notifyColorsChanged ). Sự kiện WallpaperColors cuối cùng (từ hình nền động) được áp dụng sau khi người dùng tắt màn hình và bật lại.

Bộ chọn chủ đề/hình nền

Làm cách nào để bật bộ chọn chủ đề hiển thị nhiều màu nguồn để người dùng chọn ngoài màu có tần suất cao nhất? Có cách nào để lấy những màu đó từ logic trích xuất không?

Đúng. Trong bộ chọn chủ đề, bạn có thể sử dụng ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) .

Có một tính năng trên tên Pixel là Biểu tượng theo chủ đề . Nó có được bao gồm trong ba bản vá bạn đã chia sẻ không? Làm thế nào các OEM có thể thực hiện điều đó?

Không. Các biểu tượng theo chủ đề đang ở giai đoạn Beta và không có sẵn trong Android 12.

Có cách nào để sử dụng ứng dụng Google Wallpaper khi bật tính năng chọn lọc và trích xuất màu không?

Đúng. Các tính năng này có thể được triển khai trong phiên bản mới nhất của ứng dụng Hình nền Google bằng cách thực hiện theo các bước tích hợp được mô tả trước đó trên trang này.

Hãy liên hệ với TAM của bạn để biết thêm chi tiết.

Google có thể chia sẻ ứng dụng hoặc mã nguồn để các OEM có thể triển khai phiên bản xem trước màu động của riêng họ trên menu cài đặt của họ, trông giống như phần xem trước được hiển thị trên ứng dụng Bộ chọn hình nền của Google không?

Các lớp chính hiển thị bản xem trước là WallpaperPicker2Launcher3 .

Màn hình xem trước hình nền là WallpaperSectionController .

Làm cách nào để triển khai Bản xem trước sau khi thay đổi màu sắc, như được hiển thị trong ứng dụng Hình nền Google?

Ứng dụng Bộ chọn hình nền yêu cầu ContentProvider có sẵn từ Trình khởi chạy (trình khởi chạy dựa trên Launcher3 có nó). Bản xem trước được GridCustomizationsProvider cung cấp trong Trình khởi chạy. Bản xem trước này phải được tham chiếu trong siêu dữ liệu của Hoạt động chính của Trình khởi chạy để ứng dụng hình nền và kiểu đọc được. Tất cả điều này được triển khai trong Launcher3 của AOSP và có sẵn cho các OEM.