radionbutton、checkbox、RatingBar自定义样式

来源:互联网 发布:android网络编程 编辑:程序博客网 时间:2024/05/13 08:42

我们在项目开发的时候经常会用到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>

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


0 0
原创粉丝点击