如何使Button點選時背景和字型顏色同時改變?

在Android開發過程中,經常會遇到這樣的需求:Button在點選按下時,按鈕背景和字型顏色都發生改變。

工具/原料

硬體環境:電腦

軟體環境:android開發環境和IDE軟體(eclipse或者android studio)

方法一:用selector來同時改變按鈕的背景和字型的顏色

給Button設定Background(可以通過xml來設定,也可以通過硬編碼來設定,這裡就給出xml來設定)

如何使Button點選時背景和字型顏色同時改變

其中,Button的Background是一個selector

如何使Button點選時背景和字型顏色同時改變

如何使Button點選時背景和字型顏色同時改變

如何使Button點選時背景和字型顏色同時改變

然後,通過硬編碼設定button的文字字型顏色,這裡用到了android提供的setTextColor(ColorStateList colors)方法,這個方法就是用來設定不同狀態下文字的顏色。

如何使Button點選時背景和字型顏色同時改變

其中,R.drawable.register_btn_text_color是在drawable資料夾下定義的selector檔案

如何使Button點選時背景和字型顏色同時改變

如何使Button點選時背景和字型顏色同時改變

實現後效果如下

如何使Button點選時背景和字型顏色同時改變

如何使Button點選時背景和字型顏色同時改變

方法2:監聽按鈕的onTouch事件

監聽按鈕的onTouch事件,當ACTION_DOWN時,改變按鈕的背景和字型顏色,當ACTION_UP時恢復按鈕的背景和字型顏色

如何使Button點選時背景和字型顏色同時改變

上述方法雖然能夠實現按鈕的背景和字型顏色都發生改變,實現起來較複雜,而且效果也不是特別好。如當手指滑動在按鈕區域內滑動時,按鈕的狀態與按下狀態保持一致,而當手指滑動到按鈕區域以外時,按鈕的狀態與預設狀態保持一致。這種效果處理起來就特別麻煩

注意事項

從上面的對比中可以看出,方法一更加好,建議各位使用第一種方法

按鈕, 背景, 顏色, 字型, 點選時,
相關問題答案