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 o gradientRadius
neste código
my_gradient_drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="radial"
android:gradientRadius="10%p"
android:startColor="#f6ee19"
android:endColor="#115ede" />
</shape>
Que pode ser definido em um background
atributo de visualização como este
<View
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/my_gradient_drawable"/>
Centro
Você pode alterar o centro do raio com
android:centerX="0.2"
android:centerY="0.7"
onde os decimais são frações da largura e altura de x
e y
respectivamente.
Documentação
Aqui estão algumas notas da documentação explicando as coisas um pouco mais.
android:gradientRadius
Raio do gradiente, usado apenas com gradiente radial. Pode ser uma dimensão explícita ou um valor fracionário em relação à dimensão mínima da forma.
Pode ser um valor de ponto flutuante, como "1,2".
Pode ser um valor de dimensão, que é um número de ponto flutuante anexado a uma unidade como "14,5 sp". As unidades disponíveis são: px (pixels), dp (pixels independentes da densidade), sp (pixels redimensionados com base no tamanho de fonte preferido), em (polegadas) e mm (milímetros).
Pode ser um valor fracionário, que é um número de ponto flutuante anexado a% ou% p, como "14,5%". O sufixo% sempre significa uma porcentagem do tamanho base; o sufixo% p opcional fornece um tamanho relativo a algum contêiner pai.