¿Cómo puedo tener un efecto dominó en un diseño lineal / relativo simple al tocar el diseño?
Intenté configurar el fondo de un diseño en algo como:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight" >
<item android:drawable="@android:color/white"/>
</ripple>
Sin embargo, solo veo un fondo blanco liso y ningún efecto dominó al tocar el diseño. ¿Qué estoy haciendo mal?
Editar:
Como referencia, aquí está mi archivo xml de diseño:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/test"
android:clickable="true">
</RelativeLayout>
<item android:drawable="@android:color/white"/>
sección. Así que no estoy seguro de cómo se supone que funciona esto si quisiera un color de fondo en el diseño. ¡Colocar esto encima de otro diseño con un color de fondo tampoco funciona!Respuestas:
Establezca estas propiedades en su diseño (si su diseño tiene el fondo blanco / claro predeterminado):
En este caso, no necesita un dibujante personalizado.
Sin embargo, si su diseño tiene un fondo negro / oscuro, tendrá que crear su propio dibujante ondulado como este:
Y luego establezca esta ondulación dibujable como su propiedad android: background .
Puede ver muchos ejemplos de estos tipos de ondas en AOSP: aquí
fuente
background
?Estoy agregando esto además de la respuesta de Igor Ganapolsky en caso de que alguien quiera tener un diseño con un color diferente y también tener un efecto dominó. Simplemente crea un efecto dominó en elementos de diseño como este:
luego, póngalo como fondo de su diseño o cualquier botón como Igor Ganapolsky mencionó en su respuesta.
fuente
Debe modificar el siguiente fragmento de código en cualquier widget (
TextView
/Button
) y puede implementar el efecto dominó :Y estás listo para irte.
fuente
Resulta que esto funciona según lo previsto. El valor estándar de colorControlHighlight del tema Material es
#40ffffff
. Entonces, sobre un fondo blanco, esto no se mostrará. Cambiar el color de resaltado a otra cosa funciona y / o cambiar el color de fondo del objeto.Gracias a todos (especialmente a Alanv por señalarme en la dirección correcta).
fuente
colorControlHighlight
en sustyles.xml
. Agréguelo a su tema personalizado, por ejemplo.Establecer
android:clickable="true"
en su diseño.fuente
Este es un ejemplo para hacer clic en un diseño de muestra con efecto dominó:
fuente
Use este ripple.xml en la carpeta Drawable , luego asígnelo como View
android: background = "@ drawable / ripple"
Android: se puede hacer clic = "verdadero"
fuente
Simplemente agregue el efecto dominó predeterminado con
android:background="?selectableItemBackground"
Me gusta:
fuente
Pon esto en tu diseño:
Nota: hay un error en la documentación de la API. Funcionará solo en API> = 23
Para todos los niveles de API , use esta solución
fuente
Probé todas esas respuestas y nada me funcionó, así que lo resolví creando el siguiente estilo:
Y luego, apliqué a mi diseño lineal:
fuente