Estoy tratando de hacer un degradado que emite desde el centro de la pantalla en blanco y se vuelve negro a medida que se mueve hacia los bordes de la pantalla.
Mientras hago un degradado "normal" como este, he estado experimentando con diferentes formas:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#E9E9E9" android:endColor="#D4D4D4"
android:angle="270"/>
</shape>
Cuando usé la forma "ovalada" obtuve al menos una forma redonda, pero no hubo efecto de degradado. ¿Cómo puedo conseguir esto?'
Siempre encuentro útiles las imágenes al aprender un nuevo concepto, así que esta es una respuesta adicional.
Los
%p
medios un porcentaje de la matriz, es decir, un porcentaje de la dimensión más estrecha de lo que consideramos que fijamos nuestra dibujable sucesivamente. Las imágenes de arriba fueron generadas cambiando elgradientRadius
en este códigomy_gradient_drawable
Que se puede establecer en el
background
atributo de una vista como esteCentrar
Puede cambiar el centro del radio con
donde los decimales son fracciones del ancho y alto para
x
yy
respectivamente.Documentación
Aquí hay algunas notas de la documentación que explican un poco más las cosas.
fuente
%
o no.También puede hacerlo en código si necesita más control, por ejemplo, varios colores y posicionamiento. Aquí está mi fragmento de Kotlin para crear un degradado radial dibujable:
Uso básico (pero siéntase libre de ajustar con parámetros adicionales):
fuente
Supongo que deberías agregar android: centerColor
Este ejemplo muestra un degradado horizontal de blanco a negro a blanco.
fuente
fuente
Aquí está el xml completo con degradado, stoke y forma circular.
fuente
fuente