在xml中创建一个可绘制的矩形,上半部分有一个渐变,下半部分有一个渐变

时间:2010-02-21 21:41:15

标签: android

我正在尝试在xml中创建一个drawable,一个矩形在上半部分有一个渐变,另一个在下半部分。这显然不是这样做的方式:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
                <gradient
                        android:startColor="#5a5a5a88"
                        android:endColor="#14141488"
                        android:angle="270" android:centerX="0.25"/>

        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" android:top="80px">
                <gradient
                        android:startColor="#5aff5a88"
                        android:endColor="#14ff1488"
                        android:angle="270" android:centerX="0.25"/>

        </shape>
    </item>
</layer-list>

我怎样才能做到这一点,最好能让它伸展到任何高度?

2 个答案:

答案 0 :(得分:8)

如果您的目标是使用具有中心颜色的渐变(从颜色A开始,在中间转换为B,然后在结尾处转换为C),请添加android:centerColorandroid:centerY属性你的一个<shape>元素和另一个元素。您可以在一个形状中完成三色渐变。

答案 1 :(得分:0)

小错误,top属性应该在item元素中;)

工作:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
       <shape android:shape="rectangle">
            <gradient
                    android:startColor="#5a5a5a88"
                    android:endColor="#14141488"
                    android:angle="270" android:centerX="0.25"/>

       </shape>
    </item>
    <item android:top="80dp">
    <shape android:shape="rectangle">
            <gradient
                    android:startColor="#5aff5a88"
                    android:endColor="#14ff1488"
                    android:angle="270" android:centerX="0.25"/>

    </shape>
</item>
</layer-list>