在Android開發過程中,經常會遇到這樣的需求:Button在點選按下時,按鈕背景和字型顏色都發生改變。
工具/原料
硬體環境:電腦
軟體環境:android開發環境和IDE軟體(eclipse或者android studio)
方法一:用selector來同時改變按鈕的背景和字型的顏色
給Button設定Background(可以通過xml來設定,也可以通過硬編碼來設定,這裡就給出xml來設定)
其中,Button的Background是一個selector
然後,通過硬編碼設定button的文字字型顏色,這裡用到了android提供的setTextColor(ColorStateList colors)方法,這個方法就是用來設定不同狀態下文字的顏色。
其中,R.drawable.register_btn_text_color是在drawable資料夾下定義的selector檔案
實現後效果如下
方法2:監聽按鈕的onTouch事件
監聽按鈕的onTouch事件,當ACTION_DOWN時,改變按鈕的背景和字型顏色,當ACTION_UP時恢復按鈕的背景和字型顏色
上述方法雖然能夠實現按鈕的背景和字型顏色都發生改變,實現起來較複雜,而且效果也不是特別好。如當手指滑動在按鈕區域內滑動時,按鈕的狀態與按下狀態保持一致,而當手指滑動到按鈕區域以外時,按鈕的狀態與預設狀態保持一致。這種效果處理起來就特別麻煩
注意事項
從上面的對比中可以看出,方法一更加好,建議各位使用第一種方法