Rating Bar is use to get/indicate rating . For the better user interference this is very important to customize the rating bar according to need of theme. In this tutorial i am covering some steps of rating bar customization.
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Steps to use RatingBar in your project.
- Crate a project in android studio.
- Open your main_activity.xml and update it-
<?xml version="1.0" encoding="utf-8"?>
<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:gravity="center"
android:orientation="vertical"
tools:context="com.pankaj.ratingbar.MainActivity">
<!--_____________________________________________________-->
<!-- -->
<!-- create simple RatingBar -->
<!--_____________________________________________________-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="default rating bar"
android:textAllCaps="true" />
<RatingBar
android:id="@+id/rtbDefault"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin" />
<!--_____________________________________________________-->
<!-- -->
<!-- create simple RatingBar -->
<!--_____________________________________________________-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="custom rating bar"
android:textAllCaps="true" />
<RatingBar
android:id="@+id/rtbCustom"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_margin="@dimen/activity_horizontal_margin"
android:progressDrawable="@drawable/custom_ratingbar_selector" />
</LinearLayout>
- Now see in your main_activity.xml, there are a custom drawable is used in second ratingbar
android:progressDrawable="@drawable/custom_ratingbar_selector" />
- So go to your resource directory and select your drawable directory and create new drawable resource file(selector)(drawable/custom_rating_selector.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/heart_empty_pink" />
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/heart_half" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/heart_fill_pink" />
</layer-list> - Open your MainActivity.JAVA class and update it -
package com.pankaj.ratingbar;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.RatingBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements RatingBar.OnRatingBarChangeListener {
//create objects
RatingBar rtbDefault, rtbCustom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initialize rating bar
rtbDefault = (RatingBar) findViewById(R.id.rtbDefault);
rtbCustom = (RatingBar) findViewById(R.id.rtbCustom);
//set number of stars(default is 5)
rtbDefault.setNumStars(5);
rtbCustom.setNumStars(5);
//set listeners
rtbDefault.setOnRatingBarChangeListener(this);
rtbCustom.setOnRatingBarChangeListener(this);
}
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
//add switch case to differentiate rating bars
switch (ratingBar.getId()) {
//A meesage will be shown when rating given by default rating bar
case R.id.rtbDefault:
Toast.makeText(this, "Selected by default rating bar : " + ratingBar.getRating(), Toast.LENGTH_SHORT).show();
break;
//A meesage will be shown when rating given by custom rating bar
case R.id.rtbCustom:
Toast.makeText(this, "Selected by custom rating bar : " + ratingBar.getRating(), Toast.LENGTH_SHORT).show();
break;
}
}
} - Now all the development steps for RatingBar has completed, Please run the application.
- Now select any rating from first ratigbar and see the result on screen-
- Now select any rating from second ratingbar and see the result on screen-

- s
- Good bye, Thanks to read this blog.



No comments:
Post a Comment