直接上代码,怼UI:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 左右负边距,就是一条直线,
然后高度高出布局的一半,
左右负责yuan弧度大小
top控制举例控件底部举例-->
<item
android:left="-150dp"
android:right="-150dp"
android:top="-100dp"
android:gravity="top">
<shape
android:shape="oval">
<gradient
android:angle="270"
android:startColor="@color/light_blue"
android:endColor="@color/flow_table_item02" />
<!--可以控制图形边缘到控件边缘的距离
高度控制垂直方向-->
<size
android:width="50dp"
android:height="350dp"/>
</shape>
</item>
</layer-list>
效果图:
我们还可以画出其他的效果,比如带阴影和圆角的背景:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="3dp"
android:top="6dp">
<shape>
<solid android:color="@color/btn_bg" />
<corners android:radius="12dp" />
<stroke android:color="@color/colorAccent" />
<size android:width="1dp" />
</shape>
</item>
<item
android:right="3dp"
android:bottom="6dp">
<shape>
<solid android:color="@color/write"/>
<corners android:radius="12dp"/>
<stroke android:color="@color/btn_bg"/>
<size android:width="1dp"/>
</shape>
</item>
</layer-list>
效果图如下:
其实本质上就是画前后两层,并错开一个举例,最后叠加,达到这样的效果。