我们项目中有非常多的地方会使用shape文件,常规需求无非就是背景圆角处理,但偏偏有些,需求看着很正常,实现起来比较奇葩。
比如,一个图形A的左右下三边与另一个图形B左右下三边重合,上边在图形B的内部。B的背景框需要shape来绘制,这时候你把B绘制完会发现,很可能A没有被绘制上,但是A单独绘制,就要考虑一个问题,即上边线在B中,不能绘制,只能绘制左右下三边。
常规绘制是这样的,四边一起加,就像这样:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#89c997"></solid>
<stroke android:width="0.5dp" android:color="#c3c3c3"></stroke>
</shape>
而只给某一边加,我们需要用到layer-list标签,比如不加上边线
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:top="-2dp">
<shape>
<solid android:color="#ffffff"/>
<stroke
android:width="1dp"
android:color="#ff0000"/>
</shape>
</item>
</layer-list>