TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.13K subscribers
Post #229 3.36K
Android ColorFilter Mode
#разработка 

На прошлой неделе столкнулся с задачей динамического создания кнопок разных цветов из кастомного drawable. 

Задача достаточно простая: нужно было создать кнопку, а дальше сделать setBackgroundResource() и выбрать необходимый файл. Дальше задать необходимый цвет при помощи метода setColorFilter. 

Однако, в моем случае, у каждой кнопки была обводка. То есть, в drawable задана <stroke>, а после применения фильтра она пропадала. Пришлось задаться вопросом и подробнее изучить тему Mode для ColorFilter. 

ColorFilter используется для нескольких целей. Например, им можно поменять Canvas, если вы создаете с нуля свою View. Или же для изменения цвета и рендеринга ImageView и Drawable, что используется в большинстве случаев.

Также эта возможность позволяет уменьшить количество используемых в приложении иконок. Например, вам нужно использовать одну и ту же иконку, но разных цветов. Теперь можно заменить цвет в иконке при помощи фильтра, а не добавлять в приложение отдельную иконку. 

Подробнее о том, как работают фильтры можно найти в этой статье. В моем случае помог Mode MULTIPLY, который не затронул обводку у кнопки.
  • 👍 1
More from @android_live
  1. Oct 6, 2026Git --delete-merged На днях узнал про любопытную команду в Git — --delete-merged . Суть пр…
  2. Oct 5, 2026Почему Android-эмулятор жрёт 8 ГБ? На днях попался репозиторий с CLI-тулзой, которая обеща…
  3. Sep 29, 2026Post #1130
  4. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  5. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  6. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →