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

Dha*_*ana 5 java android

我在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>
Run Code Online (Sandbox Code Playgroud)

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"/>
Run Code Online (Sandbox Code Playgroud)

在形状上,渐变属性将起始颜色设为绿色,垂直填充绿色.但我想填充下面图像的颜色,填充水平半色的颜色.怎么做?

在此输入图像描述

Jai*_*oni 2

使用图层列表并在 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>
Run Code Online (Sandbox Code Playgroud)

编辑:您刚刚在 xml 中使用了这个渐变属性

< gradient android:angle="-90" android:centerX="0.5" android:centerY="0.5" android:centerColor="#ffffff" android:startColor="#32CD32" android:endColor="#ffffff"
 /> 
Run Code Online (Sandbox Code Playgroud)

我已经使用了这个,并且这个显示了您所需的类似形状:

 < 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>
Run Code Online (Sandbox Code Playgroud)