Я пытаюсь создать градиент, который излучается из середины экрана белым цветом и становится черным по мере продвижения к краям экрана.
Когда я делаю такой «нормальный» градиент, я экспериментирую с разными формами:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#E9E9E9" android:endColor="#D4D4D4"
android:angle="270"/>
</shape>
При использовании «овальной» формы я, по крайней мере, получил круглую форму, но эффекта градиента не было. Как я могу этого добиться? »
Я всегда считаю изображения полезными при изучении новой концепции, так что это дополнительный ответ.
Это
%p
означает процент от родителя, то есть процент от самого узкого измерения любого представления, которое мы установили для нашего drawable. Изображения выше были созданы путем измененияgradientRadius
в этом кодеmy_gradient_drawable
Что можно установить для
background
атрибута представления, подобного этомуЦентр
Вы можете изменить центр радиуса с помощью
где десятичные являются доли ширины и высоты для
x
иy
соответственно.Документация
Вот несколько примечаний из документации, которые еще немного объясняют.
источник
%
.Вы также можете сделать это в коде, если вам нужно больше контроля, например, несколько цветов и расположение. Вот мой фрагмент кода Kotlin для создания рисованного радиального градиента:
Базовое использование (но не стесняйтесь настраивать дополнительные параметры):
источник
Думаю, вам стоит добавить android: centerColor
В этом примере отображается горизонтальный градиент от белого к черному и к белому.
источник
источник
Вот полный xml с градиентом, штрихом и круглой формой.
источник
источник