[英]Nested shapes in Android
I am trying to draw a shape that has three rectangular shapes:我正在尝试绘制一个具有三个矩形形状的形状:
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.我正在尝试制作 3 种颜色的渐变。 Start with a solid color #ff297baf
, at 60% start a gradient from #ff297baf
to #ff16c0e3
and add a while line at the end.从纯色#ff297baf
开始,在 60% 处开始从#ff297baf
到#ff16c0e3
的渐变,并在最后添加一条 while 线。
If you're going to look into using multiple shapes, you should try a LayerListDrawable.如果您打算考虑使用多个形状,则应该尝试使用 LayerListDrawable。 Something like this works for me, but only for your example height of 60px.像这样的东西对我有用,但仅适用于您的示例高度 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:angle="270"
android:endColor="#ff16c0e3"
android:startColor="#ff297baf"
android:type="linear" />
</shape>
</item>
<item android:top="57px">
<shape android:shape="rectangle">
<solid android:color="#FFFFFFFF" />
<size android:height="3px" />
</shape>
</item>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.