以下のように、Color State Listを使うことでtextColorだけは実装できました。
同じように、textや、BackgroundColorも状態によって変化させる方法は無いでしょうか。

res/color/button_text_color.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
    <item android:state_focused="true" android:state_pressed="true" android:color="#000000" />
    <item android:state_focused="false" android:state_pressed="true" android:color="#000000" />
    <item android:color="#ffffff" />
</selector>

res/layout/exsample.xml

...
<Button
    android:textColor="@color/button_text_color" />
...