Je trouve toujours les images utiles lors de l'apprentissage d'un nouveau concept, c'est donc une réponse supplémentaire.
Le %p
signifie un pourcentage du parent, c'est-à-dire un pourcentage de la dimension la plus étroite de la vue sur laquelle nous définissons notre dessin. Les images ci-dessus ont été générées en modifiant le gradientRadius
dans ce code
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>
Qui peut être défini sur l' background
attribut d' une vue comme celui-ci
<View
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/my_gradient_drawable"/>
Centre
Vous pouvez modifier le centre du rayon avec
android:centerX="0.2"
android:centerY="0.7"
où les décimales sont des fractions de la largeur et de la hauteur pour x
et y
respectivement.
Documentation
Voici quelques notes de la documentation expliquant un peu plus les choses.
android:gradientRadius
Rayon du dégradé, utilisé uniquement avec le dégradé radial. Peut être une dimension explicite ou une valeur fractionnaire par rapport à la dimension minimale de la forme.
Peut être une valeur à virgule flottante, telle que "1,2".
Il peut s'agir d'une valeur de dimension, qui est un nombre à virgule flottante ajouté avec une unité telle que "14,5sp". Les unités disponibles sont: px (pixels), dp (pixels indépendants de la densité), sp (pixels mis à l'échelle en fonction de la taille de police préférée), in (pouces) et mm (millimètres).
Peut être une valeur fractionnaire, qui est un nombre à virgule flottante ajouté avec% ou% p, comme "14,5%". Le suffixe% signifie toujours un pourcentage de la taille de base; le suffixe optionnel% p fournit une taille relative à un conteneur parent.