自定义RadioButton样式2

系统 1853 0
先看一下图:

自定义RadioButton样式2
上面这种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样式2

傍边有图标的怎么办?

自定义RadioButton样式2
也很简单啦,只要在每个RadioButton上加android:drawableLeft="@drawable/tubiao_0"就可以了。
另外要设置图标与文字的距离怎么办?
有一个方法setCompoundDrawablePadding(pad)可以设置图标与文字的距离,对应的属性为android:drawablePadding。

有了这招完全可以实现类似的n选1效果,看下面:
自定义RadioButton样式2


应用:
http://www.iteye.com/topic/1116261#2256664

自定义RadioButton样式2


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论