1. 程式人生 > >你討厭寫selector背景了嗎?手摸手教你封裝個控制元件!

你討厭寫selector背景了嗎?手摸手教你封裝個控制元件!

前段時間專案裡要寫好幾個按下去狀態變化的button, 於是在drawable資料夾裡寫了一堆檔案, 想想好煩啊, 也是浪費時間,搞了一堆檔案,還要起名,真心煩!

一氣之下, 一勞永逸, 寫一個控制元件,各種屬性程式碼xml配置或者程式碼設定。因此也就有了StateButton。

其實實現並不難,只是比較煩,一堆屬性。 有興趣的看看。

效果圖:

image.png

stateButton.gif

有哪些功能:

 //設定圓角度
 app:radius="5dp"

//設定左右為半圓, 不用計算radius
 app:round="true"

//設定背景切換動畫時長
 app:animationDuration="200"

//設定dash            
app:strokeDashGap="2dp" //設定dash width app:strokeDashWidth="5dp" //設定正常顯示的邊框寬度 app:normalStrokeWidth="2dp" //設定按下時顯示的邊框寬度 app:pressedStrokeWidth="2dp" //設定不可用時(enable = false)顯示的邊框寬度 app:unableStrokeWidth="2dp" //設定正常顯示的邊框顏色 app:normalStrokeColor="@android:color/white" //設定按下時顯示的邊框顏色 app:pressedStrokeColor="@android:color/white"
//設定不可用時(enable = false)顯示的邊框顏色 app:unableStrokeColor="@android:color/white" //設定正常顯示的文字顏色 app:normalTextColor="@android:color/white" //設定按下狀態顯示的文字顏色 app:pressedTextColor="@android:color/white" //設定不可用時(enable = false)顯示的文字顏色 app:unableTextColor="@android:color/white" //設定正常顯示的背景顏色 app:normalBackgroundColor="@color/colorPrimaryDark"
//設定按下狀態顯示的背景顏色 app:pressedBackgroundColor="@color/colorPrimaryDark" //設定不可用時(enable = false)背景顏色 app:unableBackgroundColor="@color/colorPrimaryDark"
感覺還可以的star下謝謝!

201609272123578195.gif

你不點個贊嗎?