У меня есть Activity с некоторыми пунктами меню, для которых я меняю цвета значков следующим образом:
private void colorMenuItem(MenuItem item) {
if (item != null) {
Drawable icon = item.getIcon();
if (icon != null) {
icon.setColorFilter(getResources().getColor(R.color.some_color), PorterDuff.Mode.SRC_ATOP);
}
}
}
Значки представляют собой белые файлы PNG из набора значков материалов. Это работает, как и ожидалось, и элементы меню окрашены по желанию.
Однако, когда я запускаю другое действие, которое использует тот же ресурс рисования, который уже был окрашен, но в другом представлении (например, FAB вместо меню), ColorFilter для этого представления остается. Почему это?
Разве FAB не должен снова загружать файл ресурсов и не должен ли он быть белым (или неизмененным)?