nested shapes in android sdk
Hi I am trying to draw a shape that has three rectangular shapes: 1. solid color 2. gradient 3. white line How do I do that? When I try this, it does not work. The layout has the parent color.
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:height="60px"
>
<shape
android:shape="rectangle"
android:height="30px"
>
<solid
android:color="#ff297baf"
/>
</shape>
<shape
android:shape="rectangle"
android:height="30px"
>
<gradient
android:type="linear"
android:startColor="#ff297baf"
android:endColor="#ff16c0e3"
android:angle="270"/>
</shape>
<shape
android:shape="rectangle"
android:height="3px"
>
<solid
android:color="#FFFFFFFF"
/>
</shape>
</shape>
I am trying to make a gradient in 3 colors. Start with a solid color #ff297baf, at 60% start a gradient from #ff297baf to #ff16c0e3 and add a while line at the end. – user538428 58 mins ago
imported on 5/10/2012 6:17:22 PM |
Accepted answer:
If you're going to look into using multiple shapes, you should try a LayerListDrawable. Something like this works for me, but only for your example height of 60px. You may have to modify it to suit your needs exactly, but this should get you a good start:
<?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="#ff297baf"
android:endColor="#ff16c0e3"
android:type="linear"
android:angle="270"
/>
</shape>
</item>
<item
android:top="57px"
>
<shape
android:shape="rectangle"
>
<solid
android:color="#FFFFFFFF"
/>
<size
android:height="3px"
/>
</shape>
</item>
</layer-list>
imported on 5/10/2012 6:17:22 PM |
Last Updated: May 10, 2012 06:19PM EDT