Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Puede usted fijar el color de fondo en un botón del toggle sin cubrir para arriba el toggle?

Tengo un ToggleButton. Quiero que el fondo sea claro, como en la aplicación de alarma por defecto para los días de la semana. El código abajo cubre la palanca con el color claro. ¿Hay alguna manera de mantener la conmutación y cambiar el color de fondo sin rodar mi propio botón de conmutación? Si no, que sería bastante mal en todo, imo. ¿También, tengo que realmente definir un color claro aquí o hay un construido en el color claro que podría utilizar en mi xml?

<ToggleButton android:background="@drawable/clear_toggle_button" android:id="@+id/btn_sunday" android:layout_width="50dp" android:layout_height="50dp" android:textOn="SUN" android:textOff="SUN" /> 

Este es mi colors.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="clear">#ffffff00</color> </resources> 

Esta es mi lista de estado de color xml en la carpeta drawable .

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@color/clear" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/clear" /> </selector> 

    3 Solutions collect form web for “¿Puede usted fijar el color de fondo en un botón del toggle sin cubrir para arriba el toggle?”

    Quiero que el fondo sea claro.

    ¿Transparente? Sí, Android tiene un color definido para eso. Puede acceder a ella como:

     @android:color/transparent 

    O, en código:

     Color.TRANSPARENT 

    @android:color/transparent se define en res/values/colors.xml :

     <color name="transparent">#00000000</color> 

    Los bits alfa (primero y segundo) son cero.

    Pero, su definición para el color clear :

     <color name="clear">#ffffff00</color> 

    No es transparente. Puede visualizar transparent como cualquier color con su conjunto alpha a cero . En su definición de clear , los bits alpha están llenos de ff – 255 – opacos.

    Su definición de color produce esto:

    Introduzca aquí la descripción de la imagen

    ¿Hay alguna manera de mantener la conmutación y cambiar el color de fondo sin rodar mi propio botón de conmutación?

    La cosa es: el color de fondo y la palanca es uno dibujable . Todo el estado 'encendido' está representado por un único dibujable, así como el estado 'apagado'. Usted no puede cambiar simplemente el color sin perder la regeneración de la toggle . Para cambiar cualquier cosa sobre el fondo ToggleButton's defecto, tendrá que proporcionar elementos extraíbles alternativos para cada estado.

    Quiero que el fondo sea claro, como en la aplicación de alarma por defecto para los días de la semana.

    El ajuste del fondo a transparente no funcionará entonces. Sugeriría que usted pasa con el código de fuente y los recursos implicados en la fabricación de un ToggleButton . Por ejemplo, los estados de on y off de un ToggleButton están representados por recursos ToggleButton . Por lo tanto, si decide cambiar el fondo, tendrá que proporcionar ToggleButton con al menos dos caracteres: uno para cada estado.

    Mira cómo funciona la aplicación de alarma predeterminada. Los ToggleButtons se usan durante days se definen como:

     <ToggleButton android:layout_width="wrap_content" android:layout_height="48dp" android:layout_gravity="center" android:padding="0dp" style="@style/body" android:textColor="@color/clock_gray" **android:background="@drawable/toggle_underline"** android:clickable="false" android:singleLine="true"/> 

    El toggle_underline es un selector de estado:

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:state_window_focused="true" android:drawable="@drawable/toggle_underline_activated"/> <item android:state_checked="true" android:drawable="@drawable/toggle_underline_activated"/> <item android:drawable="@drawable/toggle_underline_normal"/> </selector> 

    Como se puede ver, cuando el ToggleButton está activado on or checked (o cuando se pressed ), @drawable/toggle_underline_activated se establece en el fondo. De lo contrario, @drawable/toggle_underline_normal se utiliza – state está off .

    toggle_underline_activated y toggle_underline_normal son ambos 9 toggle_underline_normal .

    Toggle_underline_activated.9.png:

    Introduzca aquí la descripción de la imagen

    Toggle_underline_normal.9.png:

    Introduzca aquí la descripción de la imagen

    Puede obtener estos dibujos (y más) aquí: Enlace .

    Por lo tanto, puede crear sus propios 9 dibujos con fondo transparente y utilizarlos con un selector de estado dibujable, o puede ver el proyecto de despertador por defecto y utilizar los dibujables de sus carpetas drawable-XXXX .

    Si desea cambiar el color del ToggleButton sin perder su "Toggle" de la manera que encontré es crear un tema para él en su style.xml:

     <style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored"> <item name="colorButtonNormal">@color/primary_dark</item> <item name="android:textColor">@color/accent</item> </style> 

    Entonces en el xml de su botón apenas fije el tema:

      <ToggleButton android:id="@+id/part2" android:layout_width="60dp" android:layout_height="wrap_content" android:textOff="B" android:textOn="B" android:theme="@style/AppTheme.Button"/> 

    Con esto he fijado el color del botón a mi color primary_dark mientras que mantiene su apariencia del toggle.

    Espero que pueda ayudar a alguien.

    Prueba esto

    <ToggleButton android:background="@color/buttoncolor" android:id="@+id/togglebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="ON" android:textOff="OFF"/>

    Crear valores / color.xml

    <color name="buttoncolor">#FF4000</color>

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.