用xml在上半部分创建一个可绘制的矩形,在上半部分创建一个渐变,另一个在下半部分
问题描述:
我试图在xml中创建一个drawable,一个在上半部分具有一个渐变的矩形,另一个在下半部分。这是不是做到这一点,显然:用xml在上半部分创建一个可绘制的矩形,在上半部分创建一个渐变,另一个在下半部分
<?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>
我怎么能这样做,最好的方式,使其可以拉伸到任何高度?
答
如果您的目标是具有带中心颜色的梯度(开始于颜色A,转换在中间到B,然后在端部过渡到C)中,添加android:centerColor
和android:centerY
属性到您<shape>
元件中的一个和核对另一个。你可以在一个形状中完成三色渐变。
答
你小bug,顶级属性应该是在项目元素;)
它的工作:
<?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>
其实,我想要的颜色的两个不同的领域......所以,它不会真的在最后过渡到另一种颜色。 在中间,它将以完全不同的颜色开始,并在最后过渡到另一种颜色。 – synic 2010-02-21 22:06:09
那么为什么你需要一个'Drawable'呢? ''不是'LinearLayout' - 它们不垂直堆叠。 –
CommonsWare
2010-02-21 23:03:20
我需要它在一个Drawable中,因为我想将它用作LinearLayout的背景。 – synic 2010-02-21 23:38:48