首页 / 操作系统 / Linux / Android入门之RatingBar(纯Java)
- import Android.app.Activity;
- import android.os.Bundle;
- import android.widget.*;
- import android.widget.RatingBar.OnRatingBarChangeListener;
-
- public class RatingBarTest extends Activity {
-
- private LinearLayout mainLayout=null;//主容器
- private TextView tv1=null; //文本1
- private RatingBar rb1=null; //评分组件1
- private TextView tv2=null; //文本2
- private RatingBar rb2=null; //评分组件2
-
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mainLayout_init();
- setContentView(mainLayout);//显示主容器
- }
- /*mainLayout初始化*/
- void mainLayout_init(){
- mainLayout=new LinearLayout(this);
- LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);
- mainLayout.setLayoutParams(lp);
- mainLayout.setOrientation(LinearLayout.VERTICAL);
- tv1_init();
- mainLayout.addView(tv1);
- rb1_init();
- mainLayout.addView(rb1);
- tv2_init();
- mainLayout.addView(tv2);
- rb2_init();
- mainLayout.addView(rb2);
- }
- /*tv1初始化*/
- void tv1_init(){
- tv1=new TextView(this);
- tv1.setText("大图标风格
");
- tv1.append("这里显示得分");
- }
- /*rb1初始化*/
- void rb1_init(){
- rb1=new RatingBar(this,null,android.R.attr.ratingBarStyle);//默认,大图标风格
- LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);
- rb1.setLayoutParams(lp);
- rb1.setNumStars(5);//设置星星个数为5
- rb1.setStepSize(0.5f);//设置步长为0.5星
- rb1.setRating(2.5f);//默认星星得分为2颗半
- //绑定监听
- OnRatingBarChangeListener orbcl=new OnRatingBarChangeListener(){
- public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {
- tv1.setText("大图标风格
");
- //小数点处理
- int rat=(int)rating;
- if(rat==rating){
- tv1.append("当前得分:"+rat+"颗星");
- }else{
- tv1.append("当前得分:"+rating+"颗星");
- }
- }
- };
- rb1.setOnRatingBarChangeListener(orbcl);
- }
- /*tv2初始化*/
- void tv2_init(){
- tv2=new TextView(this);
- tv2.setText("小图标风格
");
- tv2.append("这里显示得分");
- }
- /*rb2初始化*/
- void rb2_init(){
- rb2=new RatingBar(this,null,android.R.attr.ratingBarStyleSmall);//小图标风格
- LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);
- rb2.setLayoutParams(lp);
- rb2.setIsIndicator(false);//小图标风格评分组件默认仅做指示器,如果要变为可评,必须修改这一属性
- rb2.setNumStars(20);//设置星星个数为20
- rb2.setStepSize(1.0f);//设置步长为1颗星
- rb2.setRating(10.0f);//默认星星得分为10颗星
- //绑定监听
- OnRatingBarChangeListener orbcl=new OnRatingBarChangeListener(){
- public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {
- tv2.setText("小图标风格
");
- //小数点处理
- int rat=(int)rating;
- if(rat==rating){
- tv2.append("当前得分:"+rat+"颗星");
- }else{
- tv2.append("当前得分:"+rating+"颗星");
- }
- }
- };
- rb2.setOnRatingBarChangeListener(orbcl);
- }
- }