Я всегда нахожу изображения полезными при изучении новой концепции, так что это дополнительный ответ.
%p
означает процент от родительского элемента, то есть процент от самого узкого измерения любого вида, на который мы устанавливаем наш объект рисования. Изображения выше были сгенерированы путем изменения 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.5sp". Доступные единицы измерения: px (пиксели), dp
(независимые от плотности пиксели), sp (масштабированные пиксели на основе предпочтительных
размер шрифта), дюймы (дюймы) и мм (миллиметры).
Может быть дробным значением, к которому добавляется число с плавающей запятой.
с% или% p, например, "14,5%". Суффикс% всегда означает
процент от базового размера; необязательный суффикс% p обеспечивает размер
относительно некоторого родительского контейнера.