用RadioButton制作点击切换效果

757 阅读1分钟
1.首先是XML中

<RadioGroup
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:gravity="center"
    android:paddingLeft="35dp"
    android:layout_marginTop="14dp"
    android:paddingRight="30dp"
    android:layout_height="30dp">

    <RadioButton
        android:id="@+id/payment_radiobtn_left"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:button="@null"
        android:checked="true"
        android:layout_gravity="right"
        android:gravity="center"
        android:textColor="@color/rb_payment_color_white"
        android:background="@drawable/bill_history_left_bg"
        android:text="借款记录"/>
    <RadioButton
        android:id="@+id/payment_radiobtn_right"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:button="@null"
        android:layout_weight="1"
        android:gravity="center"
        android:textColor="@color/rb_payment_color_white"
        android:background="@drawable/bill_history_right_bg"
        android:text="还款记录"/>
</RadioGroup>

2.Drawable中 selector与shape结合使用

<selector xmlns:android="http://schemas.android.com/apk/res/android">


    <item android:state_checked="true">
        <shape>
            <corners
                android:bottomRightRadius="50dp"
                android:topRightRadius="50dp"
                android:topLeftRadius="0dp"
                android:bottomLeftRadius="0dp"/>
            <stroke
                android:width="1dp"
                android:color="@color/bill_detail_money_history_color"/>
            <solid
                android:color="@color/bill_detail_money_history_color"/>
        </shape>

    </item>
    <item android:state_selected="true">
        <shape>
            <corners
                android:bottomRightRadius="50dp"
                android:topRightRadius="50dp"
                android:topLeftRadius="0dp"
                android:bottomLeftRadius="0dp"/>
            <stroke
                android:width="1dp"
                android:color="@color/white"/>
            <solid
                android:color="@color/bill_detail_money_history_color"/>
        </shape>

    </item>


    <item
        android:state_checked="false">
        <shape>
            <corners
                android:bottomRightRadius="50dp"
                android:topRightRadius="50dp"
                android:topLeftRadius="0dp"
                android:bottomLeftRadius="0dp"/>
            <stroke
                android:width="1dp"
                android:color="@color/bill_detail_money_history_color"/>
            <solid
                android:color="@color/white"/>//未选中时  默认颜色
        </shape>
    </item>
    <item
        android:state_selected="false">
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/bill_detail_money_history_color"/>
            <solid
                android:color="@color/list_devider_color"/>
        </shape>
    </item>
    </selector>

3.点击后字体的颜色变化效果

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/white"></item>
    <item android:state_selected="true" android:color="@color/white"></item>
    <item android:state_checked="false" android:color="@color/bill_detail_money_history_color"></item >
    <item android:state_selected="false" android:color="@color/bill_detail_money_history_color"></item >
</selector>