1

我开始使用Google 的示例应用程序作为参考开发 Android Wear 表盘。我遇到了一个问题,我不想在我的并发症上着色。具体来说,谷歌助手的并发症。但是,无论我做什么,谷歌助手的并发症都会出现某种颜色的着色。

在查看谷歌的代码时,我只能找到一个对复杂化颜色着色的参考:

    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 之类的值,则图标将显示为蓝色。

带有 Google Assistant 调色功能的表盘

我知道可以禁用复杂功能着色,因为我的 Fossil 表盘之一以我希望的方式显示 Google Assistant 徽标。

在此处输入图像描述

有谁知道我如何为我的并发症禁用颜色着色?

4

1 回答 1

0

这里有两种不同的并发症类型:

  1. 图标 - 图标应该是单色的,并且可能会被表盘着色。

  2. SMALL_IMAGE - 不应着色的全彩色图像。

第二个屏幕截图中的 Google Assistant 复杂功能(很可能)是 SMALL_IMAGE 类型。确保您的并发症槽也支持 SMALL_IMAGE 类型。我的猜测是你目前只支持 ICON 类型。调用setIconColorActive()aComplicationDrawable不会着色 SMALL_IMAGE,只会着色 ICON。

支持这两种类型都很好,只要记住你声明它们的顺序实际上很重要。

关于不同类型的更多细节可以在官方文档中找到。

于 2018-01-25T18:38:24.683 回答