Welcome 微信登录

首页 / 操作系统 / Linux / Android入门之RatingBar(纯Java)

    
  1. import Android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.*;  
  4. import android.widget.RatingBar.OnRatingBarChangeListener;  
  5.   
  6. public class RatingBarTest extends Activity {  
  7.       
  8.     private LinearLayout mainLayout=null;//主容器   
  9.     private TextView tv1=null;          //文本1    
  10.     private RatingBar rb1=null;         //评分组件1   
  11.     private TextView tv2=null;          //文本2   
  12.     private RatingBar rb2=null;         //评分组件2   
  13.       
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         mainLayout_init();  
  17.         setContentView(mainLayout);//显示主容器   
  18.     }  
  19.     /*mainLayout初始化*/  
  20.     void mainLayout_init(){  
  21.         mainLayout=new LinearLayout(this);  
  22.         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);  
  23.         mainLayout.setLayoutParams(lp);  
  24.         mainLayout.setOrientation(LinearLayout.VERTICAL);  
  25.         tv1_init();  
  26.         mainLayout.addView(tv1);  
  27.         rb1_init();  
  28.         mainLayout.addView(rb1);  
  29.         tv2_init();  
  30.         mainLayout.addView(tv2);  
  31.         rb2_init();  
  32.         mainLayout.addView(rb2);  
  33.     }  
  34.     /*tv1初始化*/  
  35.     void tv1_init(){  
  36.         tv1=new TextView(this);  
  37.         tv1.setText("大图标风格 ");  
  38.         tv1.append("这里显示得分");  
  39.     }  
  40.     /*rb1初始化*/  
  41.     void rb1_init(){  
  42.         rb1=new RatingBar(this,null,android.R.attr.ratingBarStyle);//默认,大图标风格   
  43.         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);  
  44.         rb1.setLayoutParams(lp);  
  45.         rb1.setNumStars(5);//设置星星个数为5   
  46.         rb1.setStepSize(0.5f);//设置步长为0.5星   
  47.         rb1.setRating(2.5f);//默认星星得分为2颗半   
  48.         //绑定监听   
  49.         OnRatingBarChangeListener orbcl=new OnRatingBarChangeListener(){  
  50.             public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {  
  51.                 tv1.setText("大图标风格 ");  
  52.                 //小数点处理   
  53.                 int rat=(int)rating;  
  54.                 if(rat==rating){  
  55.                     tv1.append("当前得分:"+rat+"颗星");  
  56.                 }else{  
  57.                     tv1.append("当前得分:"+rating+"颗星");  
  58.                 }  
  59.             }     
  60.         };  
  61.         rb1.setOnRatingBarChangeListener(orbcl);  
  62.     }  
  63.     /*tv2初始化*/  
  64.     void tv2_init(){  
  65.         tv2=new TextView(this);  
  66.         tv2.setText("小图标风格 ");  
  67.         tv2.append("这里显示得分");  
  68.     }  
  69.     /*rb2初始化*/  
  70.     void rb2_init(){  
  71.         rb2=new RatingBar(this,null,android.R.attr.ratingBarStyleSmall);//小图标风格   
  72.         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2, -2);  
  73.         rb2.setLayoutParams(lp);  
  74.         rb2.setIsIndicator(false);//小图标风格评分组件默认仅做指示器,如果要变为可评,必须修改这一属性   
  75.         rb2.setNumStars(20);//设置星星个数为20   
  76.         rb2.setStepSize(1.0f);//设置步长为1颗星   
  77.         rb2.setRating(10.0f);//默认星星得分为10颗星   
  78.         //绑定监听   
  79.         OnRatingBarChangeListener orbcl=new OnRatingBarChangeListener(){  
  80.             public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {  
  81.                 tv2.setText("小图标风格 ");  
  82.                 //小数点处理   
  83.                 int rat=(int)rating;  
  84.                 if(rat==rating){  
  85.                     tv2.append("当前得分:"+rat+"颗星");  
  86.                 }else{  
  87.                     tv2.append("当前得分:"+rating+"颗星");  
  88.                 }  
  89.             }     
  90.         };  
  91.         rb2.setOnRatingBarChangeListener(orbcl);  
  92.     }  
  93. }