今天我們來(lái)聊一下自定義Switch控件,我們先看一看Switch的相關(guān)屬性:
1.Switch相關(guān)屬性
- android:splitTrack:是否設(shè)置間隙讓滑塊與底部圖片分隔開(kāi)來(lái)
- android:switchMinWidth:設(shè)置開(kāi)關(guān)的最小寬度
- android:switchPadding:設(shè)置滑塊內(nèi)文字的間隔
- android:switchTextAppearance:設(shè)置開(kāi)關(guān)的文字外觀
- android:textOff:按鈕沒(méi)有被選中時(shí)顯示的文字
- android:textOn:按鈕被選中時(shí)顯示的文字
- android:showText:設(shè)置on/off的時(shí)候是否顯示文字,如果不顯示則textOn,textOff不起作用
- android:textStyle:文字風(fēng)格,粗體氓皱,斜體
- android:track:滑塊底部的背景圖片,類似Background效果
- android:thumb:滑塊的圖片
2.Switch普通效果展示及監(jiān)聽(tīng)
2.1普通效果展示
代碼:
效果:
那我們加入thumb和track屬性看看效果情连,為了方便我們都用項(xiàng)目自帶的機(jī)器人迫淹。效果如下:
代碼:
效果:
不得不說(shuō)真心丑,看來(lái)還得自定義铺浇。
2.2監(jiān)聽(tīng)
3.Switch的自定義
自定義Switch的步驟如下:
- 定義Switch的開(kāi)關(guān)按鈕狀態(tài)
- 定義一下Switch滑動(dòng)軌道的狀
- 自定義文字顏色
- 應(yīng)用效果展示
3.1定義Switch的開(kāi)關(guān)按鈕狀態(tài)
我們先定義thumb這個(gè)屬性值痢畜,它有開(kāi)關(guān)兩種狀態(tài)
-
我們先定義打開(kāi)的thumb的xml文件叫switch_custom_thumb_on
-
關(guān)閉thumb的xml的文件叫switch_custom_thumb_off
-
定義一個(gè)selector:switch_custom_thumb_selector
3.2 Switch滑動(dòng)軌道的狀態(tài)
定義track這個(gè)屬性值,它也有開(kāi)啟和關(guān)閉兩種狀態(tài)
-
打開(kāi)狀態(tài)的track:switch_custom_track_on
-
關(guān)閉狀態(tài)的track: switch_custom_track_off
-
定義一個(gè)selector:switch_custom_track_selector
補(bǔ)充:
thumb和track默認(rèn)大小是一致的,那如果我們想看起來(lái)thumb比tarck或者thumb比track小該怎么辦呢丁稀?
- 想track高度低于thumb高度就給track增加一個(gè)透明的邊框吼拥。
- 想track高度高于thumb按鈕高度就給thumb按鈕增加一個(gè)透明的邊框。
3.3 定義Switch文字的顏色
定義switchTextAppearance這個(gè)屬性值
- 定義一個(gè)文本顏色狀態(tài)的selector:switch_switchtextcolor_selector.xml
-
在style文件中定義一個(gè)樣式叫 SwitchTextColorTheme的樣式
3.3 定義Switch效果展示
代碼:
效果:
基本也就這么多线衫,告辭凿可!