要画出下面的效果:
<RadioGroup
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:weightSum="3">
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/radiobutton_left_selector"
android:button="@null"
android:gravity="center"
android:text="详情"
android:textColor="@color/radiobutton_white_gray" />
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:checked="false"
android:background="@drawable/radiobutton_center_selector"
android:button="@null"
android:gravity="center"
android:text="评论"
android:textColor="@color/radiobutton_white_gray" />
<RadioButton
android:checked="false"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/radiobutton_right_selector"
android:button="@null"
android:gravity="center"
android:text="赞(0)"
android:textColor="@color/radiobutton_white_gray" />
</RadioGroup>
res/drawable/radiobutton_left_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_enabled="true">
<layer-list>
<!-- 边框颜色值 -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/green" />
<corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/green" />
</shape>
</item>
<!-- 主体背景颜色值 -->
<item android:bottom="0dp" android:left="1dp" android:right="1dp" android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/green" />
<corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
</shape>
</item>
</layer-list>
</item>
<item android:state_checked="false" android:state_enabled="true">
<layer-list>
<!-- 边框颜色值 -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/gray_F4F4F4" />
<corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/gray_E2E2E2" />
</shape>
</item>
<!-- 主体背景颜色值 -->
<item android:bottom="1dp" android:left="1dp" android:right="0dp" android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/gray_F4F4F4" />
<!-- 圆角 -->
<corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="0dp" android:color="@color/gray_E2E2E2" />
</shape>
</item>
</layer-list>
</item>
</selector>
res/drawable/radiobutton_center_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_enabled="true">
<shape android:shape="rectangle">
<solid android:color="@color/green" />
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="0dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/green" />
</shape>
</item>
<item android:state_checked="false" android:state_enabled="true">
<shape android:shape="rectangle">
<solid android:color="@color/gray_F4F4F4" />
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="0dp" android:topRightRadius="0dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/gray_E2E2E2" />
</shape>
</item>
</selector>
res/drawable/radiobutton_right_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_enabled="true">
<layer-list>
<!-- 边框颜色值 -->
<item>
<shape android:shape="rectangle">
<!--填充色-->
<solid android:color="@color/green" />
<!-- 圆角 -->
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="0dp" android:topRightRadius="5dp" />
<!--边距-->
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<!--边-->
<stroke android:width="1dp" android:color="@color/green" />
</shape>
</item>
<!-- 主体背景颜色值 android:left="0dp" 表示不要画左边-->
<item android:bottom="1dp" android:left="0dp" android:right="1dp" android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/green" />
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="0dp" android:topRightRadius="5dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/green" />
</shape>
</item>
</layer-list>
</item>
<item android:state_checked="false" android:state_enabled="true">
<layer-list>
<!-- 边框颜色值 -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/gray_F4F4F4" />
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="0dp" android:topRightRadius="5dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="1dp" android:color="@color/gray_E2E2E2" />
</shape>
</item>
<!-- 主体背景颜色值 -->
<item android:bottom="1dp" android:left="0dp" android:right="1dp" android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/gray_F4F4F4" />
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="0dp" android:topRightRadius="5dp" />
<padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" />
<stroke android:width="0dp" android:color="@color/gray_E2E2E2" />
</shape>
</item>
</layer-list>
</item>
</selector>
radiobutton_left_selector 和radiobutton_right_selector 都只画了三条边。
res/drawable/color/radiobutton_white_gray.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_enabled="true" android:color="@color/white"/>
<item android:color="@color/textColor_gray"/>
</selector>