Cambiar el color "encendido" de un Switch

Resuelto JamesSugrue asked hace 54 años • 27 respuestas

Estoy usando un control Switch estándar con el tema holo.light en una aplicación ICS.

Quiero cambiar el color resaltado o activado del botón de alternancia del azul claro estándar al verde.

Esto debería ser fácil, pero parece que no sé cómo hacerlo.

JamesSugrue avatar Jan 01 '70 08:01 JamesSugrue
Aceptado

Tarde para la fiesta pero así es como lo hice

Estilo

 <style name="SCBSwitch" parent="Theme.AppCompat.Light">
        <!-- active thumb & track color (30% transparency) -->
        <item name="colorControlActivated">#46bdbf</item>

        <!-- inactive thumb color -->
        <item name="colorSwitchThumbNormal">#f1f1f1
        </item>

        <!-- inactive track color (30% transparency) -->
        <item name="android:colorForeground">#42221f1f
        </item>
    </style>

Colores

ingrese la descripción de la imagen aquí

Disposición

<android.support.v7.widget.SwitchCompat
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:checked="false"
    android:theme="@style/SCBSwitch" />

Resultado

Ver cambio de colores para interruptor de habilitación y deshabilitación.

ingrese la descripción de la imagen aquí

Hitesh Sahu avatar Jul 09 '2016 05:07 Hitesh Sahu

A partir de ahora es mejor utilizar SwitchCompat de la biblioteca AppCompat.v7. Luego puedes usar un estilo simple para cambiar el color de tus componentes.

values/themes.xml:

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- colorPrimary is used for the default action bar background -->
    <item name="colorPrimary">@color/my_awesome_color</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/my_awesome_darker_color</item>

    <!-- colorAccent is used as the default value for colorControlActivated,
         which is used to tint widgets -->
    <item name="colorAccent">@color/accent</item>

    <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight, and colorSwitchThumbNormal. -->

</style>

ref: Blog de desarrolladores de Android

EDITAR :

La forma en que se debe aplicar correctamente es mediante android:theme="@style/Theme.MyTheme" y también se puede aplicar a estilos principales como EditTexts, RadioButtons, Switches, CheckBoxes y ProgressBars:

<style name="My.Widget.ProgressBar" parent="Widget.AppCompat.ProgressBar">

<style name="My.Widget.Checkbox" parent="Widget.AppCompat.CompoundButton.CheckBox">
SubChord avatar Nov 03 '2014 10:11 SubChord