Как я могу сделать этот гибкий градиент с XML?
Я могу сделать простой градиент от цвета A до цвета B, но я не знаю, как объединить два градиента в один и тот же drawable.
Как я могу сделать этот гибкий градиент с XML?
Я могу сделать простой градиент от цвета A до цвета B, но я не знаю, как объединить два градиента в один и тот же drawable.
Наконец-то я нашел решение со списком слоев, который достаточно хорош для меня:
<?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 и просто соединить их вместе.