Wednesday, August 21, 2013

Rating Bar Full Example

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    
    <RatingBar android:id="@+id/rating_1"
    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="3"
        android:rating="2.5">
    </RatingBar>
    
    <RatingBar android:id="@+id/rating_2"
    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:rating="2.25">
    </RatingBar>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip">
    
<TextView  
android:id="@+id/rating"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
   
    <RatingBar android:id="@+id/small_ratingbar"
            style="?android:attr/ratingBarStyleSmall"
            android:layout_marginLeft="5dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />
    </LinearLayout>
    
    <RatingBar android:id="@+id/indicator_ratingbar"
        style="?android:attr/ratingBarStyleIndicator"
        android:layout_marginLeft="5dip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" 
        />
        
</LinearLayout>



MainActivity.java



public class MainActivity extends Activity implements RatingBar.OnRatingBarChangeListener
{
RatingBar mSmallRatingBar;
RatingBar mIndicatingRatingBar;
TextView mRatingText;
    /** Called when the activity is first created. */
   
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mRatingText=(TextView)findViewById(R.id.rating);
        
        mSmallRatingBar=(RatingBar)findViewById(R.id.small_ratingbar);
        mIndicatingRatingBar=(RatingBar)findViewById(R.id.indicator_ratingbar);
        
        ((RatingBar)findViewById(R.id.rating_1)).setOnRatingBarChangeListener(this);
        ((RatingBar)findViewById(R.id.rating_2)).setOnRatingBarChangeListener(this);
    }
    
   
    public void onRatingChanged(RatingBar ratingBar,float rating,boolean fromTouch)
    {
    final int numStars=ratingBar.getNumStars();
   
    mRatingText.setText(getString(R.string.ratingbar_rating)+" "+rating+" / "+numStars);
   
    if(mIndicatingRatingBar.getNumStars()!=numStars)
    {
    mIndicatingRatingBar.setNumStars(numStars);
    mSmallRatingBar.setNumStars(numStars);
    }
   
    if(mIndicatingRatingBar.getRating()!=rating)
    {
    mIndicatingRatingBar.setRating(rating);
    mSmallRatingBar.setRating(rating);
    }
   
    final float ratingBarStepSize=ratingBar.getStepSize();
   
    if(mIndicatingRatingBar.getStepSize()!=ratingBarStepSize)
    {
    mIndicatingRatingBar.setStepSize(ratingBarStepSize);
    mSmallRatingBar.setStepSize(ratingBarStepSize);
    }
    }

}



1 comment: