自定义RadioButton 实现性别抉择成果,通过自定义RadioButton背景来实现。

自定义矩形边框背景

res/drawable/bg_radio_button_normal.xml 失常状态背景

<?xml version="1.0" encoding="utf-8"?><shape    xmlns:android="http://schemas.android.com/apk/res/android">    <!-- 外部色彩 -->    <solid        android:color="@android:color/white" />    <!-- 边缘线条色彩 -->    <stroke        android:width="1dp"        android:color="@android:color/darker_gray" />    <!-- 圆角的幅度 -->    <corners        android:topLeftRadius="0dip"        android:topRightRadius="0dip"        android:bottomLeftRadius="0dip"        android:bottomRightRadius="0dip" /></shape>

res/drawable/bg_radio_button_checked.xml 选中状态背景

<?xml version="1.0" encoding="utf-8"?><shape    xmlns:android="http://schemas.android.com/apk/res/android">    <!-- 外部色彩 -->    <solid        android:color="@android:color/white" />    <!-- 边缘线条色彩 -->    <stroke        android:width="1dp"        android:color="@color/colorPrimary" />    <!-- 圆角的幅度 -->    <corners        android:topLeftRadius="0dip"        android:topRightRadius="0dip"        android:bottomLeftRadius="0dip"        android:bottomRightRadius="0dip" /></shape>

res/drawable/bg_radio_button.xml Selector

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_checked="true" android:drawable="@drawable/bg_radio_button_checked"/>    <item android:state_focused="true" android:drawable="@drawable/bg_radio_button_checked"/>    <item android:drawable="@drawable/bg_radio_button_normal"/></selector>

定义字体色彩

res/drawable/radio_button_text_color.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_checked="true" android:color="@color/colorPrimary"/>    <item android:state_focused="true" android:color="@color/colorPrimary"/>    <item android:color="@android:color/darker_gray"/></selector>

应用

<RadioButton    android:id="@+id/rb_male"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@drawable/bg_radio_button"    android:button="@null"    android:text="Male" />