Как сделать двойной градиент с XML (iphone like)

Как я могу сделать этот гибкий градиент с XML?

Изображение с двойным градиентом

Я могу сделать простой градиент от цвета A до цвета B, но я не знаю, как объединить два градиента в один и тот же drawable.

Solutions Collecting From Web of "Как сделать двойной градиент с XML (iphone like)"

Я, наконец, нашел решение со списком слоев, который достаточно хорош для меня:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- First part is a gradient --> <item android:left="0dp" android:right="0dp"> <shape android:shape="rectangle"> <gradient android:angle="-90" android:startColor="#9dcbf6" android:endColor="#177ee6" /> </shape> </item> <!-- Second part is plain color. Slightly transparent --> <item android:top="1sp" android:bottom="20sp" > <shape android:shape="rectangle"> <solid android:color="#10ffffff"/> </shape> </item> </layer-list> 

Среднее значение равно 20 sp, потому что контейнер имеет высоту 40sp, но вы можете приспособиться к своей воле, отредактировав: android:bottom="20sp"

Вы можете иметь три цвета в градиенте. Начальный цвет, цвет конца и центральный цвет.

 <gradient android:angle="integer" android:centerX="integer" android:centerY="integer" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" | "radial" | "sweep"] android:usesLevel=["true" | "false"] /> 

В качестве альтернативы вы можете использовать LayerList Drawable и просто скомпоновать их вместе.