¿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: Introduzca aquí la descripción de la imagen

hacer clic: Introduzca aquí la descripción de la imagen

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.

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 ..

  • ¿Cómo agregar un botón en android?
  • Android Toggle Button - Diseño de materiales
  • Button BackgroundTint no funciona con AppCompat v23
  • Android: botón con dos colores de fondo
  • Cambiar el texto del botón y la acción - desarrollo de Android
  • ¿Cómo puedo aplicar un estilo a todos los botones de una aplicación de Android?
  • Enlace externo y el botón de hardware atrás con jQuery Mobile
  • ¿Cómo quitar la imagen del botón de la casilla de verificación por codificación java?
  • ¿Cómo manejar el botón Atrás en el diálogo?
  • Android: Crear botón en forma
  • Agregar botón como "Nuevo correo" de la aplicación de Gmail
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.