自定義switchCompat背景樣式+動畫

自定義switchCompat樣式

翻了一遍switchCompat詳解,要想自己改掉原生樣式成上圖樣板,改掉原生track 和 thumb即可, 話不多說上demo

新建thumb_selector:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/thumb_on" android:state_checked="true">

<item android:drawable="@drawable/thumb_off" android:state_checked="false">

</selector>


thumb_on 和 thumb_off 樣式:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" ?>

? ? <shape android:shape="rectangle">

? ? ? ? <size android:width="28dp" android:height="28dp" />

? ? ? ? <gradient android:startColor="#06b4ea" android:endColor="#009ee8" android:angle="-90" />

? ? ? ? <corners android:radius="20dp" />

<item android:gravity="center"? >

? ? <shape android:shape="oval"? >

? ? ? ? <solid android:color="#FFFFFF"/>

? ? ? ? <size android:width="16dp" android:height="16dp" />

</layer-list>


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

? ? ? ? <shape android:shape="rectangle">

? ? ? ? ? ? <size android:width="28dp" android:height="28dp" />

? ? ? ? ? ? <corners android:radius="20dp" />

? ? ? ? android:gravity="center" >

? ? ? ? <shape android:shape="oval">

? ? ? ? ? ? <solid android:color="#19191919"? />

? ? ? ? ? ? <size android:height="16dp" android:width="16dp" />

</layer-list>


track_selector , track_on, track_off :


<selector xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

? ? <item android:state_checked="true"? android:drawable="@drawable/track_on" />

? ? <item android:drawable="@drawable/track_normal" />

</selector>


<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

? ? <size android:width="56dp" android:height="28dp" />

? ? <gradient android:startColor="#06b4ea" android:endColor="#009ee8" android:angle="-90" />

? ? <corners android:radius="20dp" />

</shape>


<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

? ? <size android:width="56dp" android:height="28dp" />

? ? <solid android:color="#0c000000" />

? ? <stroke android:color="#19191919" android:width="1dp" />

? ? <corners android:radius="20dp" />

</shape>


xml 中引用如下:

<androidx.appcompat.widget.SwitchCompat

? ? android:id="@+id/switch_compat"

? ? android:layout_width="wrap_content"

? ? android:layout_height="wrap_content"

? ? app:switchMinWidth="56dp"

? ? android:background="@null"

? ? app:track="@drawable/track_selector"

? ? android:thumb="@drawable/thumb_selector"

? ? app:theme="@style/switchStyle"/>


有些機型可能還是會展示原生樣式, 則需自己把原生樣式統(tǒng)統(tǒng)去掉,styles.xml新增:

<style name="switchStyle" parent="Theme.AppCompat.Light">

? ? <item name="colorControlActivated">#00000000

? ? <item name="colorSwitchThumbNormal">#00000000

? ? <item name="android:colorForeground">#00000000

</style>

xml中用app:theme調(diào)用即可。

OK啦~~~~~·

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進口蔓越莓干需要哪些資料 作為一家國際物流有限公司,青島金邦一直秉承著”推己及人、視野開拓、熱情務(wù)實”的服務(wù)精神,...
    4d8be78c42e8閱讀 138評論 0 0
  • 10min,邏輯很簡單,使用兩個棧,就不用考慮下一層有多少個節(jié)點了 7min,是前序遍歷,但是通過函數(shù)參數(shù)把層數(shù)記...
    mztkenan閱讀 144評論 0 0
  • 宋甜 【日精進打卡第4天】 【知~學習】 《道德經(jīng)闡微》六十五、六十六章 《京瓷哲學》501-510頁 【行~實踐...
    和鈴央央_a338閱讀 198評論 0 0
  • 六年級15班楊景濤 清明時節(jié)雨,我漫步鄉(xiāng)野,任飄灑的雨絲輕撫我的臉頰。 四月的田野是一片蔥綠,郁郁蔥蔥的禾...
    雨后陽光_ad99閱讀 153評論 0 0
  • 今個兒一大早去省婦幼談個買賣,怎么樣,夠牛吧,其實也就幾包衛(wèi)生巾的事。 下了公交往醫(yī)院走,一抬頭就看見電線桿...
    錦瑟華年與誰度閱讀 132評論 0 0

友情鏈接更多精彩內(nèi)容