Estou tentando fazer um gradiente que emite do meio da tela em branco e se transforme em preto conforme se move em direção às bordas da tela.
À medida que faço um gradiente "normal" como este, tenho experimentado 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>
Ao usar a forma "oval", pelo menos obtive uma forma redonda, mas não houve efeito de gradiente. Como posso conseguir isso? '
Sempre considero as imagens úteis quando aprendo um novo conceito, então esta é uma resposta complementar.
Os
%p
meios uma percentagem do pai, isto é, a percentagem da dimensão mais estreita do que quer ver vamos definir nossa drawable diante. As imagens acima foram geradas alterando ogradientRadius
neste códigomy_gradient_drawable
Que pode ser definido em um
background
atributo de visualização como esteCentro
Você pode alterar o centro do raio com
onde os decimais são frações da largura e altura de
x
ey
respectivamente.Documentação
Aqui estão algumas notas da documentação explicando as coisas um pouco mais.
fonte
%
ou não.Você também pode fazer isso em código se precisar de mais controle, por exemplo, várias cores e posicionamento. Aqui está meu snippet Kotlin para criar um gradiente radial drawable:
Uso básico (mas sinta-se à vontade para ajustar com parâmetros adicionais):
fonte
Eu acho que você deve adicionar android: centerColor
Este exemplo exibe um gradiente horizontal de branco a preto e branco.
fonte
fonte
Aqui está o xml completo com gradiente, curso e formato circular.
fonte
fonte