Trovo sempre le immagini utili quando imparo un nuovo concetto, quindi questa è una risposta supplementare.
I %p
mezzi una percentuale del genitore, che è, una percentuale della dimensione più stretta di ciò osserviamo abbiamo impostato il nostro drawable on. Le immagini sopra sono state generate modificando gradientRadius
in questo codice
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>
Che può essere impostato su un background
attributo di vista come questo
<View
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/my_gradient_drawable"/>
Centro
È possibile modificare il centro del raggio con
android:centerX="0.2"
android:centerY="0.7"
dove i decimali sono frazioni della larghezza e dell'altezza rispettivamente per x
e y
.
Documentazione
Ecco alcune note dalla documentazione che spiegano le cose un po 'di più.
android:gradientRadius
Raggio del gradiente, utilizzato solo con gradiente radiale. Può essere una dimensione esplicita o un valore frazionario relativo alla dimensione minima della forma.
Può essere un valore in virgola mobile, ad esempio "1.2".
Può essere un valore di dimensione, che è un numero in virgola mobile aggiunto a un'unità come "14,5 sp". Le unità disponibili sono: px (pixel), dp (pixel indipendenti dalla densità), sp (pixel ridimensionati in base alla dimensione del carattere preferita), in (pollici) e mm (millimetri).
Può essere un valore frazionario, che è un numero in virgola mobile aggiunto con% o% p, ad esempio "14,5%". Il suffisso% indica sempre una percentuale della dimensione di base; il suffisso% p facoltativo fornisce una dimensione relativa a un contenitore genitore.