📜  Android自定义RadioButton(1)

📅  最后修改于: 2023-12-03 14:59:17.567000             🧑  作者: Mango

Android自定义RadioButton

Android自带的RadioButton样式不一定符合我们项目的需求,这时就需要进行自定义RadioButton的操作了。本文将介绍如何自定义RadioButton。

实现步骤
1. 创建自定义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>
2. 应用自定义RadioButton

在布局文件中使用自定义的RadioButton即可:

<RadioButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:button="@drawable/custom_radiobutton"
    android:text="自定义RadioButton"/>
效果预览

custom_radiobutton_preview

总结

通过以上实现步骤,可以很容易地自定义RadioButton样式,满足项目需求。