¿Es posible agregar una sombra paralela a una forma personalizada en Android? Después de mirar la documentación, solo veo una forma de aplicar una sombra de texto.
He intentado esto sin suerte:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#90ffffff"/>
<corners android:radius="12dp" />
<item name="android:shadowColor">#000000</item>
<item name="android:shadowRadius">5</item>
<item name="android:shadowDy">3</item>
</shape>
android
android-layout
mdunkle
fuente
fuente
<!-- Bottom 2dp Shadow -->
? No veo ninguno2
en su código ... ???Así es como lo hago:
Código abajo para un botón ESTADO:
Entonces debería tener un selector con diferentes versiones del botón, algo así como:
Espero que esto pueda ayudarte ... buena suerte
fuente
Esta es mi versión de una sombra paralela. Estaba buscando una sombra nebulosa alrededor de la forma y utilicé esta respuesta de Joakim Lundborg como mi punto de partida. Lo que cambié es agregar esquinas a todos los elementos de sombra y aumentar el radio de la esquina para cada elemento de sombra posterior. Entonces aquí está el
xml
:fuente
Lo siguiente funcionó para mí: solo guarde como custom_shape.xml.
fuente
Creo que este método produce muy buenos resultados:
fuente
Antigua pregunta, pero Elevation, disponible con Material Design ahora proporciona una sombra para cualquier vista.
Vea los documentos en https://developer.android.com/training/material/shadows-clipping.html
fuente
ImageButton
lugar de unImageView
plusButton' because it allows a
ImageButton` permite tanto anandroid:background
como anandroid:src
. Por lo tanto, pude especificarandroid:elevation
solo una vez y evitar el "efecto de la pirámide inca" que describí en mi último comentario.Sugeriría una pequeña mejora a la solución de Bruce, que consiste en evitar dibujar sobre la misma forma uno encima del otro y simplemente usar un trazo en lugar de un sólido. Se vería así:
Por último, quería señalar a las personas que desean una sombra en una dirección específica que todo lo que tiene que hacer es establecer la parte superior, inferior, izquierda o derecha en 0dp (para una línea continua) o -1dp (para nada)
fuente
Si no le importa hacer un dibujo personalizado con la API de Canvas, consulte esta respuesta sobre sombras paralelas . Aquí hay una pregunta de seguimiento a la que soluciona un problema en el original.
fuente
fuente
Creo que este valor de sombra es bueno para la mayoría de los casos:
fuente
Esta pregunta puede ser antigua, pero para cualquiera en el futuro que quiera una forma simple de lograr efectos de sombra complejos, consulte mi biblioteca aquí https://github.com/BluRe-CN/ComplexView
Con la biblioteca, puede cambiar los colores de las sombras, ajustar los bordes y mucho más. Aquí hay un ejemplo para lograr lo que buscas.
Para cambiar el color de la sombra, use app: shadowColor = "su código de color".
fuente
9 parche al rescate, se puede lograr una sombra agradable fácilmente, especialmente con esta increíble herramienta:
Generador de sombras de Android 9 parches
PD: si el proyecto no puede compilarse, necesitará mover un poco las líneas negras en el editor de Android Studio
fuente
si necesita una sombra de línea recta (como en la parte inferior de la barra de herramientas) también puede usar gradiente xml:
espero que esto ayude a alguien
fuente