Ошибка прозрачности палитры материалов Android

Недавно я играл с растровыми изображениями и палитрами, когда столкнулся со следующим:

java.lang.IllegalArgumentException: background can not be translucent
    at android.support.v7.graphics.ColorUtils.findMinimumAlpha(ColorUtils.java:90)
    at android.support.v7.graphics.ColorUtils.getTextColorForBackground(ColorUtils.java:127)
    at android.support.v7.graphics.Palette$Swatch.ensureTextColorsGenerated(Palette.java:621)
    at android.support.v7.graphics.Palette$Swatch.getTitleTextColor(Palette.java:605)

Погрузившись в исходный код, я обнаружил:

private static int findMinimumAlpha(int foreground, int background, double minContrastRatio) {
    if (Color.alpha(background) != 255) {
        throw new IllegalArgumentException("background can not be translucent");
    }
    ...
}

Изображение, которое я использовал, это:

простой значок поиска на панели действийоригинальный значок

Я думаю, что проблема связана с тем, насколько это изображение в какой-то степени полностью прозрачно. В настоящее время я реализую почти идентичную проверку как предложение throw Color.alpha(palette.getSomeColor()) != 255, но это просто кажется неправильным.

Есть ли метод при работе с палитрами, который решает эту проблему для меня? Я чувствую, что это будет достаточно распространенной ошибкой, что я, должно быть, делаю что-то не так или пропущу какое-то руководство по этому поводу.

0 ответов

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