Switch控件样式

1.通过theme属性可以控制SwitchCompat的样式

layout布局文件:

	<android.support.v7.widget.SwitchCompat
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:theme="@style/SwitchStyle" />

res/values/styles.xml中新建style:thumb表示滑块,track表示滑轨

 <style name="SwitchStyle" parent="Theme.AppCompat.Light">
        
        "colorControlActivated">#FF04B0FF
        
        "colorSwitchThumbNormal">#FFF1F1F1
        
        "android:colorForeground">#00000000
    style>

使用Switch控件也可以按照以上方法修改颜色:
但是style文件中colorSwitchThumbNormal属性会失效,即该属性无法设置滑动至false时Thumb的颜色

	<Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:theme="@style/SwitchStyle" />

2.更加灵活的定制方式如下:

layout布局文件中使用:

	<android.support.v7.widget.SwitchCompat
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:thumb="@drawable/thumb_style"
        android:track="@drawable/track_style"/>

drawable下新建新xml文件:thumb_style和track_style:

	
	<selector xmlns:android="http://schemas.android.com/apk/res/android">
    	<item android:drawable="@drawable/thumb_style_open" android:state_checked="true" />
    	<item android:drawable="@drawable/thumb_style_close" android:state_checked="false" />
	selector>
	
	<selector xmlns:android="http://schemas.android.com/apk/res/android">
    	<item android:drawable="@drawable/track_style_open" android:state_checked="true" />
    	<item android:drawable="@drawable/track_style_close" android:state_checked="false" />
	selector>

drawable下新建新xml文件:thumb_style_open/close和track_style_open/close四个文件:

	
	<shape xmlns:android="http://schemas.android.com/apk/res/android"
    	android:shape="rectangle" >
    	<size android:height="40dp" android:width="40dp"/>
    	<corners android:radius="20dp"/>
    	<gradient
       	 	android:endColor="#FFFFFF"
        	android:startColor="#FF0000" />
    	<stroke android:width="1dp"
        	android:color="#FFFF00"/>
	shape>

这样就可以定制Thumb的大小颜色边框,track的长宽颜色等属性

你可能感兴趣的:(Switch控件样式)