📅  最后修改于: 2023-12-03 14:59:17.567000             🧑  作者: Mango
Android自带的RadioButton样式不一定符合我们项目的需求,这时就需要进行自定义RadioButton的操作了。本文将介绍如何自定义RadioButton。
在项目的res/drawable目录下新建一个custom_radiobutton.xml文件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<!-- 未选中的状态 -->
<item android:drawable="@drawable/custom_radio_normal" android:state_checked="false"/>
<!-- 选中的状态 -->
<item android:drawable="@drawable/custom_radio_checked" android:state_checked="true"/>
</selector>
在项目的res/drawable目录下新建一个custom_radio_normal.xml文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/colorCustomRadioNormal"/>
<stroke android:color="@color/colorCustomRadioStroke" android:width="2dp"/>
</shape>
在项目的res/drawable目录下新建一个custom_radio_checked.xml文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/colorCustomRadioChecked"/>
</shape>
在项目的res/values目录下新建一个colors.xml文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="colorCustomRadioNormal">#FFFFFF</color>
<color name="colorCustomRadioStroke">#000000</color>
<color name="colorCustomRadioChecked">#FF0000</color>
</resources>
在布局文件中使用自定义的RadioButton即可:
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:button="@drawable/custom_radiobutton"
android:text="自定义RadioButton"/>
通过以上实现步骤,可以很容易地自定义RadioButton样式,满足项目需求。