• Android RadioButton设置选中时文字和背景颜色同时改变


    主要应用在购物车,像淘宝的那样,点击以后弹出一个选择种类颜色这样的popuwindow以后,然后这个选择种类的地方要用到类似这个玩意儿。

    搜了一下,效果和这个文章一致。转了。

    原文地址:http://blog.csdn.net/liuwan1992/article/details/52688408

    在使用 RadioButton 时,有时我们会想要达到选中时文字颜色和背景颜色同时改变的效果,这里还需要多进行几步操作。

    首先,在布局文件中新建一组 RadioButton :

    [html] view plain copy
     
    1. <RadioGroup  
    2.     android:layout_width="match_parent"  
    3.     android:layout_height="wrap_content"  
    4.     android:gravity="center"  
    5.     android:orientation="horizontal">  
    6.   
    7.     <RadioButton  
    8.         android:id="@+id/btn1"  
    9.         android:layout_width="0dp"  
    10.         android:layout_height="35dp"  
    11.         android:layout_weight="1"  
    12.         android:background="@drawable/radiobutton_background"  
    13.         android:button="@null"  
    14.         android:gravity="center"  
    15.         android:text="P0501"  
    16.         android:textColor="@color/radiobutton_textcolor"  
    17.         android:textSize="14sp" />  
    18.   
    19.     <RadioButton  
    20.         android:id="@+id/btn2"  
    21.         android:layout_width="0dp"  
    22.         android:layout_height="35dp"  
    23.         android:layout_marginStart="10dp"  
    24.         android:layout_weight="1"  
    25.         android:background="@drawable/radiobutton_background"  
    26.         android:button="@null"  
    27.         android:gravity="center"  
    28.         android:text="P0502"  
    29.         android:textColor="@color/radiobutton_textcolor"  
    30.         android:textSize="14sp" />  
    31.   
    32.     <RadioButton  
    33.         android:id="@+id/btn3"  
    34.         android:layout_width="0dp"  
    35.         android:layout_height="35dp"  
    36.         android:layout_marginStart="10dp"  
    37.         android:layout_weight="1"  
    38.         android:background="@drawable/radiobutton_background"  
    39.         android:button="@null"  
    40.         android:gravity="center"  
    41.         android:text="P0503"  
    42.         android:textColor="@color/radiobutton_textcolor"  
    43.         android:textSize="14sp" />  
    44.   
    45. </RadioGroup>  

    这里面有三个属性要做一下说明:

    1、Android:button="@null" 这样设置可以不显示我们通常所见的 RadioButton 中的圆形选中按钮.

    2、android:background="@drawable/radiobutton_background" 这里设置了背景选择器,代码如下:

    [html] view plain copy
     
    1. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
    2.     <item android:drawable="@drawable/radiobutton_background_unchecked"  
    3.         android:state_checked="false" />  
    4.     <item android:drawable="@drawable/radiobutton_background_checked"  
    5.         android:state_checked="true" />  
    6. </selector>  

    这里面的选中样式又指向一个 Drawable 资源文件 radiobutton_background_checked.xml ,具体代码如下:

    [html] view plain copy
     
    1. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     android:shape="rectangle">  
    3.     <!-- 填充 -->  
    4.     <solid android:color="@color/color14" />  
    5.     <!-- 圆角 -->  
    6.     <corners android:radius="5dp" />  
    7. </shape>  

    以上这些资源文件都放在 res/drawable/ 目录下。

    3、android:textColor="@color/radiobutton_textcolor" 这里设置了字体颜色选择器,需要稍作说明的是:需要在 res 目录下新建一个

    文件夹取名为 color ,将字体颜色选择器 radiobutton_textcolor.xml 文件存放在 res/color/ 目录下面。代码如下:

    [html] view plain copy
     
    1. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
    2.     <item android:color="@color/color2"  
    3.         android:state_checked="false" />  
    4.     <item android:color="@color/color1"  
    5.         android:state_checked="true" />  
    6. </selector>  

    经过以上步骤后,我们来看一下效果图:

         

    最后提一下怎么通过 RadioGroup 获取 RadioButton :

    [java] view plain copy
     
    1. RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);  
    2. radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
    3.     @Override  
    4.     public void onCheckedChanged(RadioGroup group, int checkedId) {  
    5.         RadioButton radioButton = (RadioButton) group.findViewById(checkedId);  
    6.         String result = radioButton.getText().toString();  
    7.     }  
    8. });  
  • 相关阅读:
    2018.7.9 模拟赛
    树状数组||归并排序求逆序对+离散化 nlogn
    LCS nlogn
    孤岛营救问题
    [POJ 3621] Sighting Cows
    树状数组求LIS
    nlogn求逆序对&&陌上花开
    最长可重区间集
    LCA模板
    [BZOJ] 4196 [Noi2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/ldq2016/p/8866671.html
Copyright © 2020-2023  润新知