layer-list可以绘制出各种分割线、图片层叠等效果。本文只针对绘制分割线,layer-list对于不会用或不太熟悉的童鞋来说不但达不到理想的效果反而造成严重的过度绘制。今天给大家分享一下layer-list绘制分割线(默认具有点击状态不需要可以删除),国际惯例上图(如有不足之处,请指正)。
1、绘制各种分割线及过度绘制检测
2、底部分割线,一般分割线的高度都是1个像素,当然了得看自己的需求
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <layer-list> <item android:gravity="bottom"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:bottom="1px"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </layer-list> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#F1F1F1" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </selector>
3、顶部铺满底部缩进48dp的分割线,注:至于缩进尺寸根据个人或项目而定
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <layer-list> <item android:gravity="bottom|left"> <shape android:shape="rectangle"> <size android:width="48dp" android:height="1px" /> <solid android:color="#ffffff" /> </shape> </item> <item android:gravity="top"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:gravity="bottom|right" android:left="48dp"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:bottom="1px" android:top="1px"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </layer-list> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#F1F1F1" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </selector>
4、底部缩进48dp的分割线,注:至于缩进尺寸根据个人或项目而定
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <layer-list> <item android:gravity="bottom|left"> <shape android:shape="rectangle"> <size android:width="48dp" android:height="1px" /> <solid android:color="#ffffff" /> </shape> </item> <item android:gravity="bottom|right" android:left="48dp"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:bottom="1px"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </layer-list> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#F1F1F1" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </selector>
5、底部铺满顶部缩进48dp的分割线,注:至于缩进尺寸根据个人或项目而定
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <layer-list> <item android:gravity="top|left"> <shape android:shape="rectangle"> <size android:width="48dp" android:height="1px" /> <solid android:color="#ffffff" /> </shape> </item> <item android:gravity="top|right" android:left="48dp"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:gravity="bottom"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:bottom="1px" android:top="1px"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </layer-list> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#F1F1F1" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </selector>
6、底部顶部都铺满的分割线
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <layer-list> <item android:gravity="top"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:gravity="bottom"> <shape android:shape="rectangle"> <size android:height="1px" /> <solid android:color="#696969" /> </shape> </item> <item android:bottom="1px" android:top="1px"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </layer-list> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#F1F1F1" /> <size android:width="50dp" android:height="50dp" /> </shape> </item> </selector>