Предотвратить тонировку осложнений износа Android

Я начинаю разрабатывать Android Wear watchfaces, используя образец приложения Google в качестве справочного материала. Я сталкиваюсь с проблемой, в которой я не хочу, чтобы мои сложности осложнились. В частности, Google помощник усложнение. Тем не менее, независимо от того, что я делаю, усложнение помощника Google будет появляться с некоторым типом цветовой тонировки.

Просматривая код Google, я могу найти только одну ссылку на цветовую тонировку усложнения:

    private void setComplicationsActiveAndAmbientColors(int primaryComplicationColor) {
        int complicationId;
        ComplicationDrawable complicationDrawable;

        for (int i = 0; i < COMPLICATION_IDS.length; i++) {
            complicationId = COMPLICATION_IDS[i];
            complicationDrawable = mComplicationDrawableSparseArray.get(complicationId);

            if (complicationId == BACKGROUND_COMPLICATION_ID) {
                // It helps for the background color to be black in case the image used for the
                // watch face's background takes some time to load.
                complicationDrawable.setBackgroundColorActive(Color.BLACK);
            } else {
                // Active mode colors.
                complicationDrawable.setBorderColorActive(primaryComplicationColor);
                complicationDrawable.setRangedValuePrimaryColorActive(primaryComplicationColor);

                // Ambient mode colors.
                Log.d("TAG Type", "Failed at complication " + i);
                complicationDrawable.setIconColorActive(Color.WHITE);
                complicationDrawable.setBorderColorAmbient(Color.WHITE);
                complicationDrawable.setRangedValuePrimaryColorAmbient(Color.WHITE);
            }
        }
    }

Когда я закомментирую

complicationDrawable.setIconColorActive(Color.WHITE);

Цвет по-прежнему окрашен в белый цвет. Если бы я раскомментировал и изменил значение на что-то вроде Color.BLUE, значок будет синим.

Watchface с тонировкой Google Assistant

Я знаю, что можно отключить тонирование при усложнении, потому что на одном из моих циферблатов Fossil логотип Google Assistant отображается так, как я хочу.

Кто-нибудь знает, как можно отключить цветную тонировку для моих осложнений?

1 ответ

Здесь есть два типа сложности:

  1. ЗНАЧОК - Ожидается, что значок будет одноцветным и может быть окрашен циферблатом.

  2. SMALL_IMAGE - полноцветное изображение, которое не должно быть тонированным.

Сложность помощника Google на втором снимке экрана (скорее всего) имеет тип SMALL_IMAGE. Убедитесь, что ваш слот усложнения также поддерживает тип SMALL_IMAGE. Я предполагаю, что в настоящее время вы поддерживаете только тип ICON. призвание setIconColorActive() на ComplicationDrawable не будет подкрашивать SMALL_IMAGE, только ICON.

Поддерживать оба типа совершенно нормально, просто помните, что порядок их объявления действительно имеет значение.

Более подробную информацию о различных типах можно найти в официальной документации.

Другие вопросы по тегам