У меня была та же проблема. Я объединил записи в https://stackoverflow.com/a/30928051 и попробовал API 17, 19, 21, 22, 23 и N Preview 3 с SupportLib 23.4.0, чтобы найти решение.
Даже если упом нуто, что совместимый класс будет использовать фильтр для предустановочных устройств (см. https://stackoverflow.com/a/27812472/2170109), он не работает.
Теперь я проверяю API самостоятельно и использую следующий код, который работает со всеми проверенными API (для 17 и выше).
// https://stackoverflow.com/a/30928051/2170109
Drawable drawable = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.vector));
image.setImageDrawable(drawable);
/*
* need to use the filter | https://stackoverflow.com/a/30880522/2170109
* (even if compat should use it for pre-API21-devices | https://stackoverflow.com/a/27812472/2170109)
*/
int color = ContextCompat.getColor(context, R.color.yourcolor);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
DrawableCompat.setTint(drawable, color);
} else {
drawable.mutate().setColorFilter(color, PorterDuff.Mode.SRC_IN);
}
Не работает после добавления мутировать() – 3xplore