您的位置:首页 > 其它

RadioGroup与FrameLayout配合时,需要点击RadioButtion改变颜色,可以改变图片

2017-10-17 08:45 323 查看
1.
首先在drawable中新建  Drawable Resource File文件  这个文件要在选中Project工程时候才能创建,右键
drawable,第一个new一个 Drawable Resource File文件 !
2.
在Drawable Resource File中 写入以下代码
<item android:state_checked="true" android:drawable="@color/select"/>
<item android:state_checked="false" android:drawable="@color/noselect"/>
<item  android:drawable="@color/noselect"/>            //选中状态,未选中状态,默认状态
3.
被引用的文件 在values的colours.xml中
<color name="select">#FF4081</color>    //选中时的颜色
<color name="noselect">#fff</color>     //未选中时的颜色


//布局
<FrameLayout
android:id="@+id/main_frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/main_radioGroup">
</FrameLayout>
<RadioGroup
android:id="@+id/main_radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb01"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="首页"
android:button="@null"
android:gravity="center"
android:checked="true" //默认选中状态
android:background="@drawable/radio_selector" //背景引用文件 />
<RadioButton
android:id="@+id/rb02"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="想法"
android:button="@null"
android:gravity="center"
android:background="@drawable/radio_selector"/>
<RadioButton
android:
cab2
id="@+id/rb03"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="市场"
android:button="@null"
android:gravity="center"
android:background="@drawable/radio_selector"/>
<RadioButton
android:id="@+id/rb04"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="通知"
android:button="@null"
android:gravity="center"
android:background="@drawable/radio_selector" />
<RadioButton
android:id="@+id/rb05"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="更多"
android:button="@null"
android:gravity="center"
android:background="@drawable/radio_selector" />
</RadioGroup>
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
//使用RadioGroup实现点击切换Radiobutton切换背景图片

1.定义你写的RadioGroup控件-----例如下:
<RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_height="40dp">

        <RadioButton
            android:id="@+id/home_button"
            android:button="@null"
            android:checked="true"
            android:gravity="center"
            android:background="@drawable/home_selector"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            />
        <RadioButton
            android:id="@+id/voide_button"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/voide_selector"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            />
        <RadioButton
            android:id="@+id/headitem_button"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/head_selector"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            />
        <RadioButton
            android:id="@+id/my_button"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/my_selector"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            />
    </RadioGroup>

总体意思就是点击不同的按钮,切换不同的图片  选中图片有选中的图片,未选中有未选中的图片

2.在drawable 下  右键 New drawable resource file  
起一个文件名 File Name 下面 Root element 选择 selector类型
(这里每一个RadioButton都需要引用一个,以上方今日头条为例,
所以需要建4个New drawable resource file)
-----每个里边放你的一个RadioButton对应的一个红色点击的图片和未点击的白色图片

里边代码如下------
例:
需要写与上面Radiobutton对应的个数,例我上面写了四个RadioButton 
我这里也要写4个对应的selector

解释一下:参考

第一个<item android:state_checked="true" android:drawable="@drawable/yx2"/>
--@drawable/yx2是选中时的图片
第二个<item android:state_checked="true" android:drawable="@drawable/yx2"/>
--@drawable/wx2是选中时的图片
第三个<item android:drawable="@drawable/yx2"/>--@drawable/wx2是默认的图片

<?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/yx2"/>
    <item android:state_checked="false" android:drawable="@drawable/wx2"/>
    <item android:drawable="@drawable/wx2"/>
</selector>

3. 3.1:给第一个默认展示的RadioButton设置  android:checked="true"默认选中  
   3.2:给每个RadioButton设置对应select.xml 
代码:android:background="@drawable/my_selector"

(注)这里的my_selector是每个引用的都不是一样的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: