`

自定义RadioButton&CheckBox样式的实现

阅读更多
http://hi.baidu.com/ljlkings/blog/item/a7945124de875c038a82a1b4.html

Android 自定义RadioButton的样式

我们知道Android控件里的button,listview可以用xml的样式自定义成自己希望的漂亮样式。
  最近用到RadioButton,利用xml修改android:background="@drawable/button_drawable",其中button_drawable为自己定义的.xml文件(res/drawable文件下),但是不成功,到网上查找,也没有正确的说法,我就开始自己尝试,最后做好了。
  其实方法很简单,同样在res/drawable新建radiobutton.xml如下
  
<selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item
            android:state_enabled="true"
             android:state_checked="true"
            android:drawable="@drawable/check" />
       <item
             android:state_enabled="true"
             android:state_checked="false"
             android:drawable="@drawable/checknull" />
   </selector>

  1 check和checknull分别为选中和位选中的图片。
  1 然后在你的布局文件中,RadioButton 布局
  1 设置android:button = "@drawable/radiobutton",就可以了!
  前后图片对比如下:




RadioButton修改样式
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="CustomTheme" parent="android:Theme"> 
   <item name="android:radioButtonStyle">@style/RadioButton</item> 
</style> 
<style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> 
   <item name="android:button">@drawable/radio</item> 
</style> 
</resources> 

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:state_window_focused="false" 
        android:drawable="@drawable/radio_hover" /> 
    <item android:state_checked="false" android:state_window_focused="false" 
        android:drawable="@drawable/radio_normal" /> 
    <item android:state_checked="true" android:state_pressed="true" 
        android:drawable="@drawable/radio_active" /> 
    <item android:state_checked="false" android:state_pressed="true" 
        android:drawable="@drawable/radio_active" /> 
    <item android:state_checked="true" android:state_focused="true" 
        android:drawable="@drawable/radio_hover" /> 
    <item android:state_checked="false" android:state_focused="true" 
        android:drawable="@drawable/radio_normal_off" /> 
    <item android:state_checked="false" android:drawable="@drawable/radio_normal" /> 
    <item android:state_checked="true" android:drawable="@drawable/radio_hover" /> 
    </selector> 



Android 自定义CheckBox 样式
http://www.pocketdigi.com/20110623/347.html
1,新建Android XML文件,类型选Drawable,根结点选selector,在这定义具体的样式。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:state_checked="true" android:state_pressed="true"
		android:drawable="@drawable/focused" />
	<item android:state_checked="false" android:state_pressed="true"
		android:drawable="@drawable/normal" />
	<item android:state_checked="false" android:drawable="@drawable/normal" />
	<item android:state_checked="true" android:drawable="@drawable/focused" />
</selector>

2,应用到Checkbox与Button不同,并不是设置Background属性,而是设置style属性,所以我们要写一个style。
在style.xml写一个style,
<style name="MyCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">
<item name="android:button">@drawable/checkbox</item>
</style>

3,应用到Checkbox:
<CheckBox android:layout_width="wrap_content" 
android:layout_height="wrap_content"
style="@style/MyCheckBox"
/>



新浪搜索界面 用到 自定义RadioButton
http://www.eoeandroid.com/thread-53703-1-1.html

风格化的 Toggle Buttons
http://blog.csdn.net/billpig/article/details/6634481

事实上,可以使用ToggleButton来模仿CheckBox:
<ToggleButton android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_toggle"/>

bg_toggle.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/toggle_me_on" /> 
    <item android:drawable="@drawable/toggle_me_off" />
</selector>


让CheckBox的选择框显示在右边



只要注意android:button和android:drawableRight就行了:
<style name="style_checkbox">
        <item name="android:layout_width">wrap_content</item>
		<item name="android:layout_height">wrap_content</item>
		<item name="android:paddingRight">25dp</item>
		<item name="android:paddingTop">5dp</item>
		<item name="android:paddingBottom">5dp</item>
		<item name="android:textColor">@color/white</item>
		<item name="android:textSize">@dimen/font_middle</item>
		<item name="android:textStyle">italic</item>
		<item name="android:singleLine">true</item>
		<item name="android:button">@null</item>
		<item name="android:drawableRight">@drawable/mycheckbox</item>
		<item name="android:drawablePadding">5dp</item>
		<item name="android:background">@android:color/transparent</item>
    </style>




  • 大小: 15 KB
  • 大小: 27.3 KB
  • 大小: 69 KB
分享到:
评论
1 楼 seawh411 2013-12-26  
很不错的样例参考

相关推荐

    RadioButton和CheckBox自定义样式

    在本文中,我们将深入探讨如何自定义RadioButton和CheckBox的样式,特别是通过重写onDraw()方法来实现颜色选择器效果。首先,我们需要了解这两个控件的基本结构和工作原理。 RadioButton和CheckBox都是继承自...

    C# WinForm 自定义 RadioButton

    在C# WinForm应用开发中,自定义RadioButton控件是一种常见的需求,这通常涉及到扩展.NET Framework提供的默认RadioButton控件的功能,以满足特定的设计或交互需求。本教程将深入讲解如何在Visual Studio 2005及其更...

    自定义RadioButton

    自定义RadioButton允许开发者根据项目需求调整其外观、交互和功能,以提供更个性化的用户体验。以下是对这个自定义RadioButton相关的知识点进行的详细解释: 1. **RadioButton基本使用**:RadioButton属于Android的...

    仿美团支付自定义radiobutton

    实现自定义RadioButton的第一步,是创建一个新的XML布局文件,作为RadioButton的视图模板。在这个文件中,我们可以定义按钮的形状、颜色、大小等属性,以及选中和未选中的状态。例如,我们可以使用Shape Drawable来...

    用WPF自定义CheckBox的样式(框框和钩钩)

    在WPF(Windows Presentation Foundation)中,自定义控件样式...总之,自定义WPF的CheckBox样式涉及样式、模板、元素形状、触发器等多个方面。熟练掌握这些技能,将使你的WPF应用具有更高的可定制性和独特的视觉效果。

    自定义ListView加CheckBox

    在实践中,你可能还需要考虑一些细节,如CheckBox的样式定制、选中状态的视觉反馈等,以提升用户体验。记得在编码过程中进行充分的测试,确保各个功能都能正常工作。在提供的"NewList"文件中,可能包含了示例代码...

    iOS Radiobutton, Checkbox Demo 例子

    本示例项目“iOS Radiobutton, Checkbox Demo”提供了一种实现这两种控件的方法,对于初学者或者需要在iOS应用中集成这些功能的开发者来说非常有帮助。 Radiobutton在iOS中通常被称为Segmented Control,它允许...

    android spinner 样式完全自定义[包括RadioButton和RatingBar效果自定义]

    最近抽了点时间,针对android一些控件的样式做了完整自定义,主要包括Spinner的样式完全自定义、RadioButton[CheckBox样式雷同]样式完全自定义、Rating样式自定义,代码已经经过测试,有需要的可以下载

    ios radiobutton、checkbox、pulldown控件封裝整理

    在iOS中,虽然没有直接对应的原生控件,但开发者通常会通过自定义UIComponent或者利用UIButton的样式来实现。在这个封装中,可能包括了创建一个RadioButton类,该类能够设置选中状态、颜色、边框宽度等属性,并提供...

    ExpandableListView+CheckBox+RadioButton

    4. **样式和布局**:根据需求自定义`CheckBox`和`RadioButton`的样式,以及它们在`ExpandableListView`中的布局。 通过以上介绍,我们可以看到,`ExpandableListView`与`CheckBox`、`RadioButton`的结合使用,可以...

    androidradionbutton等自定义

    本文将深入探讨如何自定义RadioButton、CheckBox和RatingBar,这三个常见的选择和评价控件。 首先,我们来看RadioButton。RadioButton通常用于单选组,用户只能选择其中一项。自定义RadioButton主要涉及以下几个...

    checkbox,RaidoButton,改变默认的图标

    总的来说,改变`Checkbox`和`RadioButton`的默认图标涉及到对UI组件的自定义,这不仅能够满足设计需求,还能提升应用的整体用户体验。通过理解不同编程环境下的实现方式,开发者可以灵活地调整这些控件的视觉表现,...

    Android安卓经典设计例程源代码-RadioButtonAndCheckBox.rar

    6. 自定义样式:可能还会涉及到自定义RadioButton和CheckBox的外观,如更改选中状态的图标或颜色。 通过深入分析和实践这个经典设计例程,你不仅能学会如何在Android应用中使用RadioButton和CheckBox,还能提升对...

    20090924 透明的CHECKBOX 和RADIOBUTTON.rar

    这个资源"20090924 透明的CHECKBOX 和RADIOBUTTON.rar"似乎包含了一些关于如何在Delphi中创建透明的复选框(Checkbox)和单选按钮(RadioButton)的示例代码或教程。 复选框和单选按钮是用户界面(UI)设计中常见的...

    C#自定义控件(usercontrol)--美化单选按钮和复选按钮

    通过以上步骤,我们可以创建出功能强大且美观的自定义RadioButton和CheckBox控件。这种自定义控件不仅可以提升应用的视觉吸引力,还能提高代码的可维护性和重用性。在实际项目中,可以根据具体需求进行灵活调整,...

    Android应用源码之32.单选复选控件学习.zip

    开发者可以定义自定义的主题和样式,以统一应用中的所有RadioButton和CheckBox的外观。通过在styles.xml文件中定义主题,然后在应用的AndroidManifest.xml或特定的Activity/Fragment中应用该主题。 八、无障碍支持 ...

Global site tag (gtag.js) - Google Analytics