最近在开发过程中要用到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.youkuaiyun.com/detail/wangwo1991/9432061