radionbutton、checkbox、RatingBar自定义样式
2016-01-12 09:45
609 查看
我们在项目开发的时候经常会用到radionbutton、checkbox、RatingBar等控件,我们可以使用系统原生的,也可以使用自定义的样式,使用系统原生的话,就要简单写,但是会根据android版本的不同呈现出不同的效果,这样就不能满足开发的需要,所以基本上都是使用自定义的,下面就是本人在开发中经常使用的:
radionbutton自定义样式:
在res/drawable中建立一个radionbutton的选择器命名为radion_button_selector;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sex_nor" android:state_checked="false"/>
<item android:drawable="@drawable/sex_down" android:state_checked="true"/>
</selector>
接下来就是布局文件里面引用这张图片了:
<RadioGroup
android:id="@+id/sex_radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="40dp"
android:layout_toRightOf="@id/tv_client_sex"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rb_sex_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:drawablePadding="8dp"
android:text="男"
android:textSize="13sp"
android:button="@null"
android:drawableLeft="@drawable/radion_button_selector"/>
<RadioButton
android:id="@+id/rb_sex_women"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:drawablePadding="8dp"
android:text="女"
android:button="@null"
android:textSize="13sp"
android:drawableLeft="@drawable/radion_button_selector"/>
</RadioGroup>
效果如下:
这样就实现了radionbutton的自定义了。
下面是checkbox的自定义样式:
和radionbutton一样在res/drawable中建立一个radionbutton的选择器命名为checkbox_selector;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/login_check"
android:state_checked="true"/>
<item android:drawable="@drawable/login_uncheck"/>
</selector>
接下来就是布局文件里面引用这张图片了:
<CheckBox
android:id="@+id/remerber_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住用户名"
android:textSize="17sp"
android:button="@drawable/checkbox_selector"
android:textColor="#000000"
android:paddingLeft="10dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="8dp"
android:checked="true"/>
运行就可以看到如下效果:
最后就是RatingBar自定义样式了:
和radionbutton一样在res/drawable中建立一个radionbutton的选择器命名为room_rating_bar;
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+android:id/background"
android:drawable="@drawable/start_icon2"></item> <span></span>
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/start_icon2"></item>
<item android:id="@+android:id/progress"
android:drawable="@drawable/start_icon1"></item>
</layer-list>
然后定义一个样式,将上面的room_rating_bar文件引进来:
<!-- 星级评分条样式 -->
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/room_rating_bar</item>
<item name="android:minHeight">16.5dip</item>
<item name="android:maxHeight">16.5dip</item>
</style>
接下来在布局文件中使用这个样式就可以了:
<RatingBar
android:id="@+id/room_ratingbar"
style="@style/roomRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:max="255"
android:numStars="5"
android:progress="255"
android:rating="2"
android:stepSize="1" >
</RatingBar>
这样就完成了,运行效果如下:
radionbutton自定义样式:
在res/drawable中建立一个radionbutton的选择器命名为radion_button_selector;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sex_nor" android:state_checked="false"/>
<item android:drawable="@drawable/sex_down" android:state_checked="true"/>
</selector>
接下来就是布局文件里面引用这张图片了:
<RadioGroup
android:id="@+id/sex_radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="40dp"
android:layout_toRightOf="@id/tv_client_sex"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rb_sex_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:drawablePadding="8dp"
android:text="男"
android:textSize="13sp"
android:button="@null"
android:drawableLeft="@drawable/radion_button_selector"/>
<RadioButton
android:id="@+id/rb_sex_women"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:drawablePadding="8dp"
android:text="女"
android:button="@null"
android:textSize="13sp"
android:drawableLeft="@drawable/radion_button_selector"/>
</RadioGroup>
效果如下:
这样就实现了radionbutton的自定义了。
下面是checkbox的自定义样式:
和radionbutton一样在res/drawable中建立一个radionbutton的选择器命名为checkbox_selector;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/login_check"
android:state_checked="true"/>
<item android:drawable="@drawable/login_uncheck"/>
</selector>
接下来就是布局文件里面引用这张图片了:
<CheckBox
android:id="@+id/remerber_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住用户名"
android:textSize="17sp"
android:button="@drawable/checkbox_selector"
android:textColor="#000000"
android:paddingLeft="10dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="8dp"
android:checked="true"/>
运行就可以看到如下效果:
最后就是RatingBar自定义样式了:
和radionbutton一样在res/drawable中建立一个radionbutton的选择器命名为room_rating_bar;
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+android:id/background"
android:drawable="@drawable/start_icon2"></item> <span></span>
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/start_icon2"></item>
<item android:id="@+android:id/progress"
android:drawable="@drawable/start_icon1"></item>
</layer-list>
然后定义一个样式,将上面的room_rating_bar文件引进来:
<!-- 星级评分条样式 -->
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/room_rating_bar</item>
<item name="android:minHeight">16.5dip</item>
<item name="android:maxHeight">16.5dip</item>
</style>
接下来在布局文件中使用这个样式就可以了:
<RatingBar
android:id="@+id/room_ratingbar"
style="@style/roomRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:max="255"
android:numStars="5"
android:progress="255"
android:rating="2"
android:stepSize="1" >
</RatingBar>
这样就完成了,运行效果如下:
相关文章推荐
- Web Essentials之样式表StyleSheets
- CSS初涉
- css3动画属性中的transition属性
- HTML+CSS
- 去掉或者修改 input、select 等表单的【默认样式 】
- 【HTML/XML 5】使用XSL给XML文档添加样式
- 【HTML/XML 5】使用XSL给XML文档添加样式
- WPF样式
- 编写可维护的css
- modal 控制器的样式
- CSS + Div 学习总结
- CSS元素分类
- 自定义上传按钮样式的终极解决方案_input透明法
- 问题与对策:CSS的margin塌陷(collapse)
- CSS里的单位介绍
- CSS的margin属性实例
- CSS学习笔记——定位position属性的学习
- Ionic基础——CSS布局
- 类似时间轴的样式
- css笔记重点