Android 实现胶囊式按钮组

效果图:

image
image
image

实现过程:

一个RadioGroup+三个RadioButton,为每个RadioButton的background、textColor设置selector。

1.首先为RadioGroup设置圆角背景,在drawable资源文件下新建group_radio_shape_bg.xml
点击查看代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="30px"/>
    <solid android:color="#d7dce0"/>
</shape>
2.为RadioButton设置选中、未选中时的背景颜色、字体颜色,新建btn_radio_shape.xml文件
点击查看代码
<?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/group_radio_shape_check_bg" />
</selector>
新建btn_radio_color_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:color="@color/colorWhite"/>
    <item android:state_checked="false" android:color="@color/colorBlack"/>
</selector>
全部代码如下:
说明几个属性:

(1)android:button="@null" 去掉RadioButton的圆点
(2)android:checked="true" 默认被选中

点击查看代码
<RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="64px"
            android:layout_marginTop="20px"
            android:gravity="center"
            android:background="@drawable/group_radio_shape_bg"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/radioButton4"
                android:layout_width="300px"
                android:layout_height="match_parent"
                android:background="@drawable/btn_radio_shape"
                android:button="@null"
                android:gravity="center"
                android:text="低"
                android:textColor="@drawable/btn_radio_color_selector"
                android:textSize="30px" />

            <RadioButton
                android:id="@+id/radioButton5"
                android:layout_width="300px"
                android:layout_height="match_parent"
                android:background="@drawable/btn_radio_shape"
                android:button="@null"
                android:gravity="center"
                android:checked="true"
                android:text="中"
                android:textColor="@drawable/btn_radio_color_selector"
                android:textSize="30px" />

            <RadioButton
                android:id="@+id/radioButton6"
                android:layout_width="300px"
                android:layout_height="match_parent"
                android:background="@drawable/btn_radio_shape"
                android:button="@null"
                android:gravity="center"
                android:text="高"
                android:textColor="@drawable/btn_radio_color_selector"
                android:textSize="30px" />
        </RadioGroup>
posted @   啊~人生~  阅读(313)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示