Я хочу, чтобы кнопки были разных цветов, но я хочу сделать это, используя фоновый ресурс кнопки по умолчанию, чтобы сохранить состояния onfocus и onclick. Это связано с тем, что я хочу использовать цвет выделения ОС по умолчанию для своего приложения, который НЕ всегда оранжевый (HTC Sense делает его зеленым).
Я обнаружил, что добавление цветного фильтра к рисунку фона кнопки отлично работает (в данном случае синий):
myButton.getBackground().setColorFilter(Color.parseColor(this.getString (R.color.button_blue)), Mode.MULTIPLY);
НО, когда кнопка сфокусирована или нажата, она превращается в неприятный оранжевый_синий, потому что смешивает цветовой фильтр с оранжевым цветом фона.
Я хочу ТОЛЬКО установить этот цветовой фильтр для несфокусированного / ненажатого девяти патчей, которые можно рисовать в пределах кнопки statelistdrawable по умолчанию. Я не уверен, как еще это сделать.
Я вижу похожее решение здесь: Исправлено: Android: обнаружение фокуса/нажатого цвета...
но у меня есть некоторые опасения по поводу этого решения, в основном, что, если ОС изменит изображение кнопки по умолчанию? Поскольку обычная несфокусированная/непрессованная графика теперь жестко запрограммирована в приложении, это нарушит поток.
Может быть, кто-нибудь может прокомментировать, было бы хорошей или плохой практикой жестко закодировать графику по умолчанию в приложение? Каковы шансы, что ОС полностью изменит графику?
Любая помощь, пожалуйста? Большое спасибо!!