如何使XML的双梯度(iPhone像)

我怎样才能使这种可绘制的渐变与XML?

双梯度图像

我可以做一个从颜色A到颜色B的简单渐变,但是我不知道如何将两个渐变组合在同一个drawable中。

我终于find了一个对我来说足够好的图层列表解决scheme:

<?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并将它们拼合在一起。