如何用XML制作双重渐变(喜欢iphone)

gru*_*unk 14 android gradient

如何使用XML制作这种可绘制渐变?

双梯度图像

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

gru*_*unk 15

我终于找到了一个带有图层列表的解决方案,这对我来说已经足够了:

<?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>
Run Code Online (Sandbox Code Playgroud)

中间设置为20 sp,因为容器的高度为40sp,但您可以通过编辑来调整您的意愿: android:bottom="20sp"


Cas*_*eyB 12

渐变中可以有三种颜色.开始颜色,结束颜色和中心颜色.

<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"] />
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用LayerList Drawable并将它们拼凑在一起.