¿Por qué un botón pierde su comportamiento original después de cambiar su color?
Estoy escribiendo una aplicación para Android y ahora la estoy diseñando. Estoy utilizando un tema personalizado que es un hijo de Theme.Holo.Light
. Me gusta mucho Theme.Holo.Light
porque sus botones tienen un efecto especial al hacer clic y mantenerlo. Como el botón inferior en la imagen de abajo:
No haga clic en:
- Android: Abrir Spinner desde el botón
- Botón de ondulación de androide con fondo
- Android: Utilizar colores de resaltado predeterminados en un botón personalizado
- ¿Cómo puedo mantener un botón tan presionado después de hacer clic en él?
- ¿Diferentes estilos dependiendo de los estados del botón? - Android
hacer clic:
El botón superior ha cambiado de color. Ahora cuando hago clic en ese botón, no tiene ese efecto. Realmente no entiendo por qué. ¿Puede alguien decirme por qué sucede esto y cómo puedo conseguir el mismo efecto con un botón coloreado?
Y también, el botón de color parece más gordo.
- Biblioteca avanzada de RecyclerView - ejemplos de código
- Cómo mostrar un botón pulsando una vez un elemento de la lista
- ¿Hay una manera de configurar la altura y el contenido de ajuste al mismo tiempo en android?
- Android Programar el texto del botón mediante programación
- Lanzamiento del botón de captura en Android
- Botones de diseño de material de Android - Pre lollipop
- Cómo deshabilitar el botón tan pronto como se hace clic
- Barra de acción de Android con dos botones estirados
Esto se debe a que el botón utiliza un selector para mostrar diferentes colores / efectos / dibujos basados en el estado del clic. Puede consultar el enlace en el recurso de lista de colores del estado .
Para crear su propio usted tiene que crear un archivo cml slecetor y ponerlo en su carpeta drawables.
Por ejemplo.
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_btn_default_normal_gray" android:state_enabled="true" android:state_pressed="false"/> <item android:drawable="@drawable/shape_btn_default_pressed_gray" android:state_pressed="true"/> <item android:drawable="@drawable/shape_btn_default_disabled_gray"/> </selector>
O con colores
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/dark_green" android:state_enabled="true" android:state_pressed="false"/> <item android:drawable="@color/light_green" android:state_pressed="true"/> <item android:drawable="@color/gray"/> </selector>
Para aplicar esto usted tiene que fijar el fondo drawable en su xml de la disposición como esto.
<Button android:id="@+id/my_btn" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Some text" android:background="@drawable/selector_btn_default_gray"/>
Ese es el "efecto de rizo" del diseño del material.
Usted ha definido su propio estilo para ese efecto.
Enlace a continuación puede ayudarle o puede buscar muchas otras respuestas en StackOverflow.
Efecto de material en el botón con el color de fondo
No pierde su comportamiento que usted puede ver después de tecleo (en su segunda imagen) el botón demuestra la misma escala que el anterior tiene … así que por defecto el fondo se fija como para demostrar que es button
(como con el padding
o tan) Y puede cambios para mostrar el efecto oncklick
… Así que cuando se establece el fondo de deseo para el botón … Se necesita un cambio completo en lo que está actualmente en él y, a continuación, tiene que configurar manualmente onclick
efecto ..