asysbang

标题: 自定义Switch样式 [打印本页]

作者: admin    时间: 2015-9-7 16:23
标题: 自定义Switch样式
Switch系统提供了,但是有些时候需要自己的样式,那么怎么自定义呢?

1、给swithc设置样式 style="@style/Switch"


2、写这个样式

+    <style name="Switch" parent="@*android:style/Widget.Holo.CompoundButton.Switch">
+    <item name="android:track">@drawable/switch_track_holo_dark</item>
+    <item name="android:thumb">@drawable/switch_inner_holo_dark</item>
+    </style>

3、写drawable

switch_inner_holo_dark.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_dark" />
    <item android:state_pressed="true"  android:drawable="@drawable/switch_thumb_pressed_holo_dark" />
    <item android:state_checked="true"  android:drawable="@drawable/switch_thumb_activated_holo_dark" />
    <item                               android:drawable="@drawable/switch_thumb_holo_dark" />
</selector>



switch_track_holo_dark.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true"  android:drawable="@drawable/switch_bg_focused_holo_dark" />
    <item                               android:drawable="@drawable/switch_bg_holo_dark" />
</selector>


Widget.Holo.CompoundButton.Switch 这个样式是私有的,所以自己写下这个样式


    <style name="Widget.Holo.CompoundButton.Switch">
        <item name="android:track">@android:drawable/switch_track_holo_dark</item>
        <item name="android:thumb">@android:drawable/switch_inner_holo_dark</item>
        <item name="android:switchTextAppearance">@android:style/TextAppearance.Holo.Widget.Switch</item>
        <item name="android:textOn">@android:string/capital_on</item>
        <item name="android:textOff">@android:string/capital_off</item>
        <item name="android:thumbTextPadding">12dip</item>
        <item name="android:switchMinWidth">96dip</item>
        <item name="android:switchPadding">16dip</item>
    </style>









欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5