Ошибка прозрачности палитры материалов 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
, но это просто кажется неправильным.
Есть ли метод при работе с палитрами, который решает эту проблему для меня? Я чувствую, что это будет достаточно распространенной ошибкой, что я, должно быть, делаю что-то не так или пропущу какое-то руководство по этому поводу.