您的位置:首页 > Web前端 > CSS

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>

这样就完成了,运行效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: