我们在项目开发的时候经常会用到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>
这样就完成了,运行效果如下: