I have the following button:
You could try using a ColorStateList, it serves the purpose you are after, I think.