如何在自定义形状中填充两种不同的颜色?

5

我已经在Android项目中创建了自定义形状。以下是代码:

curvedShape.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke android:width="4dp" android:color="#ffffff" />
    <padding android:left="7dp" android:top="7dp"
            android:right="7dp" android:bottom="7dp" />
    <gradient android:centerColor="#ffffff" android:startColor="#32CD32" android:endColor="#ffffff"/> 
</shape>

main.xml:-

<View   
            android:layout_width="wrap_content"
            android:layout_height="150dp"
            android:layout_marginLeft = "10dp"
            android:layout_marginRight = "10dp"
            android:layout_centerHorizontal="true" 
            android:layout_marginTop="20dp"
            android:background="@drawable/curvedshape"/>

在形状方面,渐变属性给出了绿色的起始颜色,垂直填充了绿色。但是,我想像下面的图片一样,在半个形状中水平填充颜色。

enter image description here

如何做到这一点?

1个回答

2

使用layer-list在XML中绘制两个形状:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >   
    < item>
            < shape
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="rectangle" >

           <stroke android:width="4dp" android:color="#ffffff" />

        </shape>
    </item>      
    <item>
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle" >

            <stroke android:width="4dp" android:color="#7CFC00" />
        </shape>
    </item> 
</layer-list>

编辑: 你只需要在xml文件中使用这个渐变属性

< gradient android:angle="-90" android:centerX="0.5" android:centerY="0.5" android:centerColor="#ffffff" android:startColor="#32CD32" android:endColor="#ffffff"
 /> 

I have use this and this show similar shape required by you:

 < shape
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="rectangle" >
 < gradient android:angle="-90" android:centerX="0.5" android:centerY="0.5" android:centerColor="#ffffff" android:startColor="#32CD32" android:endColor="#ffffff"
 /> 
 < /shape>


它不起作用,第二个项目占据了整个视图。请问您能提供其他的想法吗? - Dhana
@Andal,请使用我在此回答的编辑中指定的渐变标记替换您的标记。 - Jaiprakash Soni
我已经用指定的代码替换了渐变标签,但它只会显示第二个形状。 - Dhana
@Andal,同时也要从你的XML中删除描边。 - Jaiprakash Soni
现在填充颜色,但顶部填充为深色,颜色填充的结束位置为浅色,请问您能否提供任何想法来像上面提到的图像一样填充颜色? - Dhana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接