Я всегда считаю изображения полезными при изучении новой концепции, так что это дополнительный ответ.
Это %p
означает процент от родителя, то есть процент от самого узкого измерения любого представления, которое мы установили для нашего drawable. Изображения выше были созданы путем изменения gradientRadius
в этом коде
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>
Что можно установить для background
атрибута представления, подобного этому
<View
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/my_gradient_drawable"/>
Центр
Вы можете изменить центр радиуса с помощью
android:centerX="0.2"
android:centerY="0.7"
где десятичные являются доли ширины и высоты для x
и y
соответственно.
Документация
Вот несколько примечаний из документации, которые еще немного объясняют.
android:gradientRadius
Радиус градиента, используется только с радиальным градиентом. Может быть явным размером или дробным значением относительно минимального размера фигуры.
Может быть значением с плавающей запятой, например «1,2».
Может быть значением измерения, представляющим собой число с плавающей запятой, к которому добавляется единица измерения, например «14,5 sp». Доступные единицы измерения: px (пиксели), dp (пиксели, не зависящие от плотности), sp (масштабированные пиксели на основе предпочтительного размера шрифта), in (дюймы) и мм (миллиметры).
Может быть дробное значение, представляющее собой число с плавающей запятой, к которому добавлен% или% p, например «14,5%». Суффикс% всегда означает процент от базового размера; необязательный суффикс% p указывает размер относительно родительского контейнера.