自定义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" />