当前位置:   article > 正文

Android 自定义 RadioButton 单选按钮样式_android radiobutton样式

android radiobutton样式

Android 自定义 RadioButton 单选按钮样式


项目开发中系统自带的radioButton可能满足不了我们实际的需要,配合APP整体的风格我们要对按钮进行改变,所以只能自定义一下,其实RadioButton自定义实现与checkBox区别不是很大,上篇博客编写了自定义checkBox的实现,该兴趣的同学可以去看一下。下面来实现自定义RadioButton

一、首先准备选中与未选中的两张图片,将它们存放在res下的drawable里面

   radio_check.png     radio_nor.png

二、然后准备选中与为选中的radio_style.xml

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android" >
  2. <item
  3. android:drawable="@drawable/radio_check"
  4. android:state_checked="true"/>
  5. <item
  6. android:drawable="@drawable/radio_nor"
  7. android:state_checked="false"/>
  8. <item
  9. android:drawable="@drawable/radio_nor"/>
  10. </selector>

三、准备好选中与未选中的xml后,我们在style.xml中添加。

  1. <!-- CustomRadiotheme -->
  2. <style name="CustomRadioTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
  3. <item name="android:button">@drawable/radio_style</item>
  4. </style>

四、最后在我们需要应用的radioButton的地方添加上style就可以

  1. <RadioButton
  2. android:id="@+id/rb_message_radio"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. style="@style/CustomRadioTheme" />

这样下来我们就可以应用自己的自定义的单选按钮了

 

Android 自定义 RadioButton 单选按钮样式 第二种写法

这种写法可以避免出现文字与图片间距太近的问题

 

自定义:

设置一个selector给button属性(给RadioButton设置):

android:button="@drawable/radiobutton_selector"

selector如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:drawable="@drawable/ic_select_yes" android:state_checked="true" android:state_enabled="true"/>
  4. <item android:drawable="@drawable/ic_select_no" android:state_checked="false" android:state_enabled="true"/>
  5. </selector>

这样设置好之后样式就ok了,但此时会出现文字与图片间距太近的问题,那么这时候在设置几个属性(给RadioButton设置)就可以调整距离了,代码如下:

  1. android:background="@null"
  2. android:button="@drawable/radiobutton_selector"
  3. android:drawableLeft="@drawable/radiobutton_selector"
  4. android:drawablePadding="5dp"

如果只要一个按钮可以把  android:button 设置为 @null 

android:button="@drawable/radiobutton_selector"

下面是一个RadioGroup的完整代码(当然这里只有xml代码):

  1. <RadioGroup
  2. android:id="@+id/radio_group"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:layout_marginRight="18dp"
  6. android:gravity="left|center_vertical"
  7. android:orientation="horizontal" >
  8. <RadioButton
  9. android:id="@+id/radio_one"
  10. android:layout_width="wrap_content"
  11. android:layout_height="match_parent"
  12. android:layout_marginRight="18dp"
  13. android:background="@null"
  14. android:button="@null"
  15. android:drawableLeft="@drawable/radiobutton_selector"
  16. android:drawablePadding="5dp"
  17. android:text="@string/net_wired"
  18. android:textColor="@color/text_color_black"
  19. android:textSize="15sp" />
  20. <RadioButton
  21. android:id="@+id/radio_two"
  22. android:layout_width="wrap_content"
  23. android:layout_height="match_parent"
  24. android:background="@null"
  25. android:button="@null"
  26. android:drawableLeft="@drawable/radiobutton_selector"
  27. android:drawablePadding="5dp"
  28. android:text="@string/net_wifi"
  29. android:textColor="@color/text_color_black"
  30. android:textSize="15sp" />
  31. </RadioGroup>

参考:

https://blog.csdn.net/tiger_gy/article/details/83340209

https://my.oschina.net/u/2473169/blog/860410

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/297228
推荐阅读
相关标签
  

闽ICP备14008679号