Предотвратить тонировку осложнений износа 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, значок будет синим.
Я знаю, что можно отключить тонирование при усложнении, потому что на одном из моих циферблатов Fossil логотип Google Assistant отображается так, как я хочу.
Кто-нибудь знает, как можно отключить цветную тонировку для моих осложнений?
1 ответ
Здесь есть два типа сложности:
ЗНАЧОК - Ожидается, что значок будет одноцветным и может быть окрашен циферблатом.
SMALL_IMAGE - полноцветное изображение, которое не должно быть тонированным.
Сложность помощника Google на втором снимке экрана (скорее всего) имеет тип SMALL_IMAGE. Убедитесь, что ваш слот усложнения также поддерживает тип SMALL_IMAGE. Я предполагаю, что в настоящее время вы поддерживаете только тип ICON. призвание setIconColorActive()
на ComplicationDrawable
не будет подкрашивать SMALL_IMAGE, только ICON.
Поддерживать оба типа совершенно нормально, просто помните, что порядок их объявления действительно имеет значение.
Более подробную информацию о различных типах можно найти в официальной документации.