我正在尝试在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>
我怎样才能做到这一点,最好能让它伸展到任何高度?
答案 0 :(得分:8)
如果您的目标是使用具有中心颜色的渐变(从颜色A开始,在中间转换为B,然后在结尾处转换为C),请添加android:centerColor
和android: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>