¿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
- Diseño personalizado que redondea las esquinas de su contenido
- ¿Cuántas tiendas de aplicaciones de Android para enviar ...?
- GetWidth () devuelve 0 si está establecido por android: layout_width = "match_parent"
- Android - ¿Cómo posiciono las vistas en un desplazamiento respecto al centro / arriba / abajo (etc.) de su padre?
- Disposición de Android: cuándo utilizar la aplicación: vs android 😕
<?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>
- Disposición de Android: expandir ImageView para rellenar el ancho, pero no mayor?
- Cajón de navegación resaltar elemento seleccionado no funciona
- Uso de estilos de fuente predeterminados en Android
- Layout_above no funciona correctamente con layout_alignParentBottom
- Spinner se mueve hacia abajo en el diseño después de seleccionar un elemento
- Los niños de CoordinatorLayout no son de pantalla completa
- Android - ¿Cómo puedo utilizar el "android: layoutDirection"?
- ¿Cómo hacer Android componentes de auto y utilizarlo de una biblioteca jar?
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:
¿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:
Toggle_underline_normal.9.png:
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>
- Establecer la posición del indicador de tabulación mediante programación en la biblioteca de soporte TabLayout
- Android: elegir el lanzador por defecto programatically