造型开关

时间:2015-05-29 01:10:37

标签: android xml

我想在我的应用中使用一个开关,但我希望它有自定义颜色。现在它根本没有出现。

切换我的xml:

<Switch
    android:id="@+id/switch"
    android:track="@drawable/switch_track"
    android:thumb="@drawable/switch_thumb"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

switch_track.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@color/grey_light"/>
    <item android:state_pressed="true"  android:drawable="@color/grey_light"/>
    <item android:state_checked="true"  android:drawable="@color/accent_light"/>
    <item android:drawable="@color/grey_light"/>
</selector>

switch_thumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@color/grey"/>
    <item android:state_pressed="true"  android:drawable="@color/grey"/>
    <item android:state_checked="true"  android:drawable="@color/accent"/>
    <item android:drawable="@color/grey"/>
</selector>

我是否需要为选择器添加图标而不是颜色,或者是否可以更改颜色?

1 个答案:

答案 0 :(得分:2)

如果您使用的是支持库,则可以使用材质属性为SwitchCompat着色:

<android.support.v7.widget.SwitchCompat
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

styles.xml:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light">
    <item name="colorSwitchThumbNormal">@color/grey</item>
    <item name="colorControlActivated">@color/accent</item>
</style>