我开始使用Google's Sample app作为参考来开发Android Wear表盘。我遇到了一个问题,我不想在我的并发症上涂上色彩。具体来说,谷歌助手的并发症。但是,无论我做什么,谷歌助手的并发症都会以某种颜色出现。
查看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之类的图标,则该图标将显示为蓝色。
我知道可以禁用复杂着色,因为我的Fossil表面之一以我希望的方式显示Google Assistant徽标。
有谁知道我可以为我的并发症禁用颜色着色吗?
最佳答案
这里有两种不同的并发症类型:
图标-图标应为单色,并可能带有以下颜色
表盘。
SMALL_IMAGE-不应着色的全彩色图像。
第二个屏幕快照中的Google Assistant并发症(很可能)是SMALL_IMAGE类型。确保您的复杂插槽也支持SMALL_IMAGE类型。我的猜测是您当前仅支持ICON类型。在setIconColorActive()
上调用ComplicationDrawable
不会给SMALL_IMAGE着色,而只会给ICON着色。
支持这两种类型都很好,只是要记住,实际上声明它们的顺序很重要。
有关不同类型的更多详细信息,请参见official documentation。