Вам придется делать это программно, потому что, как вы узнали, drawableTint
доступен только для API 23 и выше. Если вы используете Kotlin, вы можете сделать эту функцию расширения:
fun MaterialButton.updateCompoundDrawablesColor() {
val color = this.textColors.getColorForState(this.drawableState, 0)
for (drawable in this.compoundDrawables) {
drawable?.colorFilter = BlendModeColorFilterCompat
.createBlendModeColorFilterCompat(color, BlendModeCompat.SRC_IN)
}
}
Это обновляет цветовой фильтр для каждого составного рисунка, используя тот же список состояний цвета, что и текст. Вы можете использовать это так:
val btn: MaterialButton = view.findViewById(R.id.btn)
btn.updateCompoundDrawablesColor()
btn.addOnCheckedChangeListener { _, _ ->
btn.updateCompoundDrawablesColor()
}