Как предоставить изображение для создания и применения цветовой схемы на основе динамического содержимого?

Руководящие принципы дизайна Material 3 описывают возможность создания тем на основе содержимого (вместо создания тем на основе текущих обоев пользователя). См. раздел ниже:

https://m3.material.io/styles/color/dynamic-color/user-generated-color#8af550b9-a19e-4e9f-bb0a-7f611fed5d0f

Теперь применение динамической темы к активности на Android работает с:

      DynamicColors.applyToActivityIfAvailable(this);

Но как вы:

  1. Создать тему на основе контента (предпочтительно с использованием представления или изображения)?
  2. Применить сгенерированную тему?

Существуют ли методы для этого?

1 ответ

Эта функциональность доступна только в версии Material-Components-Android 1.10, которая сейчас находится в альфа-версии.

          DynamicColors.applyToActivityIfAvailable(
    this,
    new DynamicColorsOptions.Builder()
        .setContentBasedSource(bitmap)
        .build()
);

Динамические цвета на основе контента описаны в документации MDC по цвету:https://github.com/material-comComponents/material-comComponents-android/blob/master/docs/theming/Color.md#content-based-dynamic- цвета