自定义RadioButton样式2

先看一下图:

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

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


		  
          
          
	

注意将android:button="@null"全部设为null,并且将android:background="@drawable/radio"设为刚才新建的图片。这样就完成了。
一句代码都不用写!

看看竖下来的效果:
6c01dd53-f522-3cc5-8ab2-30f2b2004fe8.png

傍边有图标的怎么办?

6a547f97-3de6-38f4-9e32-e230a1002688.png
也很简单啦,只要在每个RadioButton上加android:drawableLeft="@drawable/tubiao_0"就可以了。
另外要设置图标与文字的距离怎么办?
有一个方法setCompoundDrawablePadding(pad)可以设置图标与文字的距离,对应的属性为android:drawablePadding。

有了这招完全可以实现类似的n选1效果,看下面:
44f72dc1-654c-37bc-9816-9d2d8c4b628e.png
bc064bd6-4b0c-33d6-9331-47b5ad6d8c8c.png

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

CircleCheckBox
https://github.com/CoXier/CheckBox
SwitchButton
https://github.com/kyleduo/SwitchButton

  • 自定义RadioButton样式2_第1张图片
  • 大小: 23.3 KB
  • 自定义RadioButton样式2_第2张图片
  • 大小: 32 KB
  • 自定义RadioButton样式2_第3张图片
  • 大小: 23.8 KB
  • 自定义RadioButton样式2_第4张图片
  • 大小: 12.1 KB
  • 自定义RadioButton样式2_第5张图片
  • 大小: 9 KB
  • 查看图片附件

你可能感兴趣的:(android)