Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

Как наложить фильтр на ImageView

Я хочу сделать фильтр на чёрно-белое изображение, это мне нужно для разных тем в приложении. Как я понимаю для этого надо использовать
ImageView header = (ImageView) findViewById(R.id.drawer_header); header.setColorFilter(R.color.my_color);
Я создал отдельный проект для тестирования и вот что получилось:

Но если я нажимаю на любую кнопку, кроме "убрать фильтр" (он ставит цвет android.R.color.transparent), получается вот такая фигня:

Почему он делает всё фиолетовым? По логике всё должно работать. Приведу код применения цвета полностью:
...
// Покрасить в красный public void setRedColor(View v) { ImageView header = (ImageView) findViewById(R.id.header); header.setColorFilter(R.color.red); }
// Покрасить в синий public void setBlueColor(View v) { ImageView header = (ImageView) findViewById(R.id.header); header.setColorFilter(R.color.blue); }
// Покрасить в зелёный public void setGreenColor(View v) { ImageView header = (ImageView) findViewById(R.id.header); header.setColorFilter(R.color.green); }
// Убрать краску public void setNullColor(View v) { ImageView header = (ImageView) findViewById(R.id.header); header.setColorFilter(android.R.color.transparent); }
Разметка:


Комментариев нет:

Отправить комментарий