Cómo crear efecto de rizo en un diseño sencillo
¿Cómo puedo tener un efecto de ondulación en un diseño lineal / relativo simple al tocar el diseño?
He intentado establecer el fondo de un diseño a algo como:
- Obtenga el efecto de ondulación en RecyclerView con elementos que contengan otro color de fondo
- AppCompatButton backgroundTint API <21
- ¿Cómo agregar efecto de rizado a las preferencias en android?
- El efecto Ripple no funciona en RelativeLayout
- Touch feedback con RecyclerView y CardView
<?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, sólo estoy viendo un fondo blanco liso y ningún efecto de rizado al tocar el diseño. ¿Qué estoy haciendo mal?
Editar:
Para 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>
- NavigationView + selector + efecto de rizo estado seleccionado no funciona
- Mantenga la ondulación dentro del trazo
- ¿Cómo manejar el efecto Ripple en 9-patch y CardView, y tener control sobre los estados del selector?
- Android cómo hacer referencia a una nueva clase de la Ripple RippleDrawable
- Color de fondo ondulado de Android
- Cómo crear efecto de rizo para pre-lollipop
- Cómo utilizar RippleDrawable programaticamente en código (no xml) con Android 5.0 Lollipop?
- Efecto de ondulación de material oculto por otra vista en el diseño
Establezca estas propiedades en su diseño:
android:clickable="true" android:background="?attr/selectableItemBackground"
Usted no tiene que definir una ondulación dibujable.
Estoy añadiendo esto además de la respuesta de Igor Ganapolsky en caso de que alguien quiere tener un diseño con diferentes colores y también tienen un efecto de rizo. Simplemente crear un efecto de rizo en drawables como este:
Ripple.xml
<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:color="@color/rippleColor" tools:targetApi="lollipop"> <!-- ripple effect color --> <item android:id="@android:id/background"> <shape android:shape="rectangle"> <solid android:color="@color/backgroundColor" /> <!-- background color --> </shape> </item> </ripple>
Luego darlo como fondo de su diseño o cualquier botón como Igor Ganapolsky mencionado en su respuesta.
android:clickable="true" android:background="@drawable/ripple"
Resulta que esto está funcionando como se pretende. El valor #40ffffff
material estándar es #40ffffff
. Así que en un fondo blanco, esto no se mostrará. Cambiar el color de resaltado a algo más funciona, y / o cambiar el color de fondo del objeto.
Gracias a todos (especialmente Alanv por señalarme en la dirección correcta).
Establecer android:clickable="true"
en su diseño.
Ponga esto en su diseño:
android:clickable="true" android:background="?attr/selectableItemBackground"
Nota: Hay un error en la documentación del API. Funcionará sólo en API> = 23
Para todos los niveles de API , utilice esta solución