1. 程式人生 > 其它 >Android 實現膠囊式按鈕組

Android 實現膠囊式按鈕組

效果圖:



實現過程:

一個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>