1. 概述
在开发过程中,对于圆角矩形是非常方便画的,但是有时候产品给的是半角矩形,而这个半角可能是左边半角或者右边半角,这个时候稍微有点麻烦,这篇文章主要记录下自己在项目中所遇到的问题。
2. 实现方式
如下图所示:
对于左边半角矩形含有的白色,直接用取色器看下是什么颜色就可以了,不用自己去添加一层遮罩,因为添加遮罩这种方式反而比较麻烦。
对于左边的半角:half_left_rectangle_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- android 实现半个圆角长方形 -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 边框的颜色及形状 -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bg_discount_color"/>
<corners android:topLeftRadius="20dp"
android:bottomLeftRadius="20dp"/>
</shape>
</item>
<!-- 背景的颜色及形状 -->
<item android:left="2dp" android:top="2dp" android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/bg_discount_color"/>
<corners android:bottomLeftRadius="20dp"
android:topLeftRadius="20dp"/>
</shape>
</item>
</layer-list>
对于右边的半角:half_right_rectangle_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- android 实现半个圆角长方形 -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 边框的颜色及形状 -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bg_common_color"/>
<corners android:topRightRadius="20dp"
android:bottomRightRadius="20dp"/>
</shape>
</item>
<!-- 背景的颜色及形状 -->
<item android:left="2dp" android:top="2dp" android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/bg_common_color"/>
<corners android:bottomRightRadius="20dp"
android:topRightRadius="20dp"/>
</shape>
</item>
</layer-list>