Tengo un botón de imagen que no responde con una animación táctil cuando se hace clic en él porque es una imagen estática, a diferencia de los botones normales de una paleta que vienen con el efecto de onda incorporado. Me gustaría agregar el efecto de toque ondulado de diseño de material a la imagen, pero parece que no puedo encontrar una manera de implementarlo. Puedo establecer un filtro de color sobre la imagen, pero ese no es el efecto dominó. Un ejemplo de lo que estoy tratando de hacer es cuando sostienes la imagen de la portada de un álbum en Google Play Music y una onda de sombra se mueve a través de la imagen.
95
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
(funciona en <API 21). Consulte stackoverflow.com/q/28605031/599535 para ver otras soluciones.Puede simplemente agregar un fondo a su ImageButton de esta manera:
fuente
Obtuve buenas respuestas de i.shadrin ( aquí ) y Nicolars ( aquí ).
La diferencia entre sus respuestas es que
?attr/selectableItemBackgroundBorderless
puede darte unaandroid.view.InflateException
, por lo que?android:attr/selectableItemBackground
es la solución.FWIW, no sé por qué ocurre la excepción, porque la primera respuesta funcionó bien en todos mis proyectos anteriores, pero en mi proyecto reciente no (tal vez porque el tema de la aplicación =
android:Theme.Material
?).Lo extraño que estaba sucediendo es que, aunque se mostró el efecto dominó, superaba al ImageButton, por lo que la solución es:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
lugar deandroid:background="?android:attr/selectableItemBackgroundBorderless"
Espero que te ayude si te enfrentas a lo mismo.
fuente
Si ya tiene un fondo y no desea cambiarlo, use el primer plano;
fuente