Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 控件之RatingBar評分條

Android 控件之RatingBar評分條

編輯:Android開發實例

RatingBar是Adnroid中的評分條。效果挺得的

 

源碼下載

一、概述

    RatingBar是SeekBar和ProgressBar的擴展,用星星來評級。使用的默認大小RatingBar時,用戶可以觸摸/拖動或使用鍵來設置評分,它有倆種樣式(大、小),其中大的只適合指示,不適合於用戶交互。

二、實例

1.布局文件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:paddingLeft="10dip" 
  5.     android:layout_width="match_parent" 
  6.     android:layout_height="match_parent"> 
  7.  
  8.     <RatingBar android:id="@+id/ratingbar1" 
  9.         android:layout_width="wrap_content" 
  10.         android:layout_height="wrap_content" 
  11.         android:numStars="3" 
  12.         android:rating="2.5" /> 
  13.  
  14.     <RatingBar android:id="@+id/ratingbar2" 
  15.         android:layout_width="wrap_content" 
  16.         android:layout_height="wrap_content" 
  17.         android:numStars="5" 
  18.         android:rating="2.25" /> 
  19.  
  20.     <LinearLayout 
  21.         android:layout_width="match_parent" 
  22.         android:layout_height="wrap_content" 
  23.         android:layout_marginTop="10dip"> 
  24.           
  25.         <TextView android:id="@+id/rating" 
  26.             android:layout_width="wrap_content" 
  27.             android:layout_height="wrap_content" /> 
  28.               
  29.         <RatingBar android:id="@+id/small_ratingbar" 
  30.             style="?android:attr/ratingBarStyleSmall" 
  31.             android:layout_marginLeft="5dip" 
  32.             android:layout_width="wrap_content" 
  33.             android:layout_height="wrap_content" 
  34.             android:layout_gravity="center_vertical" /> 
  35.               
  36.     </LinearLayout> 
  37.  
  38.     <RatingBar android:id="@+id/indicator_ratingbar" 
  39.         style="?android:attr/ratingBarStyleIndicator" 
  40.         android:layout_marginLeft="5dip" 
  41.         android:layout_width="wrap_content" 
  42.         android:layout_height="wrap_content" 
  43.         android:layout_gravity="center_vertical" /> 
  44.               
  45. </LinearLayout> 
  46.  

2.Java代碼

  1. package wjq.WidgetDemo;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.RatingBar;  
  6. import android.widget.TextView;  
  7. import android.widget.RatingBar.OnRatingBarChangeListener;  
  8.  
  9. public class RatingBarDemo extends Activity implements 
  10.   OnRatingBarChangeListener {  
  11.  private RatingBar mSmallRatingBar;  
  12.  private RatingBar mIndicatorRatingBar;  
  13.  private TextView mRatingText;  
  14.  
  15.  /*  
  16.   * (non-Javadoc)  
  17.   *   
  18.   * @see android.app.Activity#onCreate(android.os.Bundle)  
  19.   */ 
  20.  @Override 
  21.  protected void onCreate(Bundle savedInstanceState) {  
  22.   // TODO Auto-generated method stub  
  23.   super.onCreate(savedInstanceState);  
  24.   setContentView(R.layout.ratingbarpage);  
  25.     
  26.    mRatingText = (TextView) findViewById(R.id.rating);  
  27.  
  28.          // We copy the most recently changed rating on to these indicator-only  
  29.          // rating bars  
  30.          mIndicatorRatingBar = (RatingBar) findViewById(R.id.indicator_ratingbar);  
  31.          mSmallRatingBar = (RatingBar) findViewById(R.id.small_ratingbar);  
  32.            
  33.          // The different rating bars in the layout. Assign the listener to us.  
  34.          ((RatingBar)findViewById(R.id.ratingbar1)).setOnRatingBarChangeListener(this);  
  35.          ((RatingBar)findViewById(R.id.ratingbar2)).setOnRatingBarChangeListener(this);  
  36.  }  
  37.  
  38.  @Override 
  39.  public void onRatingChanged(RatingBar ratingBar, float rating,  
  40.    boolean fromUser) {  
  41.    final int numStars = ratingBar.getNumStars();  
  42.          mRatingText.setText(   
  43.                   " 受歡迎度" + rating + "/" + numStars);  
  44.  
  45.          // Since this rating bar is updated to reflect any of the other rating  
  46.          // bars, we should update it to the current values.  
  47.          if (mIndicatorRatingBar.getNumStars() != numStars) {  
  48.              mIndicatorRatingBar.setNumStars(numStars);  
  49.              mSmallRatingBar.setNumStars(numStars);  
  50.          }  
  51.          if (mIndicatorRatingBar.getRating() != rating) {  
  52.              mIndicatorRatingBar.setRating(rating);  
  53.              mSmallRatingBar.setRating(rating);  
  54.          }  
  55.          final float ratingBarStepSize = ratingBar.getStepSize();  
  56.          if (mIndicatorRatingBar.getStepSize() != ratingBarStepSize) {  
  57.              mIndicatorRatingBar.setStepSize(ratingBarStepSize);  
  58.              mSmallRatingBar.setStepSize(ratingBarStepSize);  
  59.          }  
  60.  
  61.  }  
  62.  
  63. }  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved