zoukankan      html  css  js  c++  java
  • Android 自定义RadioButton样式

     
    上面这种3选1的效果如何做呢?用代码写? 
    其实有更简单的办法,忘了RadioButton有什么特性了吗? 
    我就用RadioButton实现了如上效果,其实很简单的。 
    首先定义一张background,命名为radio.xml,注意该background必须为xml样式的图片: 

    <?xml version="1.0" encoding="utf-8"?>   
    <selector xmlns:android="http://schemas.android.com/apk/res/android">   
        <item   
        android:state_checked="false"   
        android:drawable="@drawable/tabswitcher_long" />   
        <item   
        android:state_checked="true"   
        android:drawable="@drawable/tabswitcher_short" />   
    </selector>   

    这里我们只要关心state_checked状态就可以了。所以很简单的配置。 
    接下来就是布局文件里面引用这张图片了:

    <RadioGroup  
            android:gravity="center"  
            android:orientation="horizontal"    
            android:layout_width="fill_parent"     
            android:layout_height="wrap_content"  
            >  
            <RadioButton     
                android:id="@+id/btn_0"    
                android:layout_width="fill_parent"     
                android:layout_height="wrap_content"  
                android:text="最新信息"   
                android:textSize="17.0sp"     
                android:textColor="@android:color/black"    
                android:gravity="center"   
                android:layout_weight="1"  
                android:checked="true"  
                android:button="@null"  
                android:background="@drawable/radio"  
                />    
            <RadioButton     
                android:id="@+id/btn_1"  
                android:layout_width="fill_parent"     
                android:layout_height="wrap_content"  
                android:text="在线专家"  
                android:textSize="17.0sp"  
                android:textColor="@android:color/black"    
                android:gravity="center"  
                android:layout_weight="1"  
                android:button="@null"  
                android:background="@drawable/radio"  
                />    
            <RadioButton     
                android:id="@+id/btn_2"  
                android:layout_width="fill_parent"     
                android:layout_height="wrap_content"  
                android:text="预约服务"  
                android:textSize="17.0sp"  
                android:textColor="@android:color/black"    
                android:gravity="center"  
                android:layout_weight="1"  
                android:button="@null"  
                android:background="@drawable/radio"  
                />    
        </RadioGroup>  

    注意将android:button="@null"全部设为null,并且将android:background="@drawable/radio"设为刚才新建的图片。这样就完成了。 
    一句代码都不用写! 
    看看竖下来的效果: 
     
    傍边有图标的怎么办? 
     
    也很简单啦,只要在每个RadioButton上加android:drawableLeft="@drawable/tubiao_0"就可以了。 
    另外要设置图标与文字的距离怎么办? 
    有一个方法setCompoundDrawablePadding(pad)可以设置图标与文字的距离,对应的属性为android:drawablePadding。 
    有了这招完全可以实现类似的n选1效果,看下面: 
     
     
    应用: 
    http://www.iteye.com/topic/1116261#2256664 

  • 相关阅读:
    对获取的DataTable表进行过滤筛选得到DataView
    简单提取iOS13的ipsw固件的内置壁纸(或文件)
    win10设置Python程序定时运行(设置计划任务)
    后端返回一个这种类型的时间格式给前端2020-01-16T09:10:02.349Z
    js把每个词的首字母转大写
    idea连接mysql自动生成实体类
    el自定义函数
    js日期时间格式化
    js大小写转换
    js瞄点
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/6034271.html
Copyright © 2011-2022 走看看