您的位置:首页 > 移动开发 > Android开发

android radionbutton、checkbox、RatingBar自定义

2016-02-15 16:12 609 查看
最近在开发过程中要用到radionbutton、checkbox、RatingBar等控件,一开始就直接使用系统原生的,但是版本不一样,运行的效果不一样,所以最后使用了自定义的,便于统一效果,以下是实现代码:

首先定义相应的选择器:

radionbutton选择器:radion_button_selector.xml

<?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


checkbox选择器:login_checkbox_selector.xml

<?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>


RatingBar选择器:room_rating_bar.xml

<?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>


下面将写好的选择器引入到布局文件中:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.radionbuttondemo.MainActivity$PlaceholderFragment" >

<RadioGroup
android:id="@+id/sex_radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="20dp"
android:orientation="horizontal" >

<RadioButton
android:id="@+id/rb_sex_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:checked="true"
android:drawableLeft="@drawable/radion_button_selector"
android:drawablePadding="10dp"
android:text="男" />

<RadioButton
android:id="@+id/rb_sex_women"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:button="@null"
android:drawableLeft="@drawable/radion_button_selector"
android:drawablePadding="10dp"
android:text="女" />
</RadioGroup>

<CheckBox
android:id="@+id/remerber_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="20dp"
android:button="@drawable/login_checkbox_selector"
android:checked="true"
android:paddingLeft="10dp"
android:text="记住用户名"
android:textColor="#000000"
android:textSize="17sp" />

<RatingBar
android:id="@+id/room_ratingbar"
style="@style/roomRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="20dp"
android:max="255"
android:numStars="5"
android:progress="255"
android:rating="2"
android:stepSize="1" >
</RatingBar>

</LinearLayout>


下面是activity中代码:

package com.example.radionbuttondemo;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.RatingBar;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

private RadioGroup sex_radiogroup;
private CheckBox remerber_user_name;
private RatingBar room_ratingbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
}

private void initView() {
sex_radiogroup = (RadioGroup) findViewById(R.id.sex_radiogroup);
remerber_user_name = (CheckBox) findViewById(R.id.remerber_user_name);
room_ratingbar = (RatingBar) findViewById(R.id.room_ratingbar);
}

}


运行效果如下:



项目代码地址:

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