Most visited

Recently visited

Added in API level 1

RatingBar

public class RatingBar
extends AbsSeekBar

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.ProgressBar
       ↳ android.widget.AbsSeekBar
         ↳ android.widget.RatingBar
Known Direct Subclasses


A RatingBar is an extension of SeekBar and ProgressBar that shows a rating in stars. The user can touch/drag or use arrow keys to set the rating when using the default size RatingBar. The smaller RatingBar style ( ratingBarStyleSmall) and the larger indicator-only style (ratingBarStyleIndicator) do not support user interaction and should only be used as indicators.

When using a RatingBar that supports user interaction, placing widgets to the left or right of the RatingBar is discouraged.

The number of stars set (via setNumStars(int) or in an XML layout) will be shown when the layout width is set to wrap content (if another layout width is set, the results may be unpredictable).

The secondary progress should not be modified by the client as it is used internally as the background for a fractionally filled star.

Summary

Nested classes

interface RatingBar.OnRatingBarChangeListener

A callback that notifies clients when the rating has been changed. 

XML attributes

android:isIndicator Whether this rating bar is an indicator (and non-changeable by the user). 
android:numStars The number of stars (or rating items) to show. 
android:rating The rating to set by default. 
android:stepSize The step size of the rating. 

Inherited XML attributes

From class android.widget.AbsSeekBar
From class android.widget.ProgressBar
From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

RatingBar(Context context, AttributeSet attrs, int defStyleAttr)
RatingBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
RatingBar(Context context, AttributeSet attrs)
RatingBar(Context context)

Public methods

CharSequence getAccessibilityClassName()

Return the class name of this object to be used for accessibility purposes.

int getNumStars()

Returns the number of stars shown.

RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener()
float getRating()

Gets the current rating (number of stars filled).

float getStepSize()

Gets the step size of this rating bar.

boolean isIndicator()
void setIsIndicator(boolean isIndicator)

Whether this rating bar should only be an indicator (thus non-changeable by the user).

void setMax(int max)

Set the range of the progress bar to 0...

void setNumStars(int numStars)

Sets the number of stars to show.

void setOnRatingBarChangeListener(RatingBar.OnRatingBarChangeListener listener)

Sets the listener to be called when the rating changes.

void setRating(float rating)

Sets the rating (the number of stars filled).

void setStepSize(float stepSize)

Sets the step size (granularity) of this rating bar.

Protected methods

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height.

Inherited methods

From class android.widget.AbsSeekBar
From class android.widget.ProgressBar
From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:isIndicator

Whether this rating bar is an indicator (and non-changeable by the user).

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol isIndicator.

Related methods:

android:numStars

The number of stars (or rating items) to show.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol numStars.

android:rating

The rating to set by default.

Must be a floating point value, such as "1.2".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol rating.

android:stepSize

The step size of the rating.

Must be a floating point value, such as "1.2".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol stepSize.

Public constructors

RatingBar

Added in API level 1
RatingBar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

RatingBar

Added in API level 21
RatingBar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

RatingBar

Added in API level 1
RatingBar (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

RatingBar

Added in API level 1
RatingBar (Context context)

Parameters
context Context

Public methods

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

Return the class name of this object to be used for accessibility purposes. Subclasses should only override this if they are implementing something that should be seen as a completely new class of view when used by accessibility, unrelated to the class it is deriving from. This is used to fill in AccessibilityNodeInfo.setClassName.

Returns
CharSequence

getNumStars

Added in API level 1
int getNumStars ()

Returns the number of stars shown.

Returns
int The number of stars shown.

getOnRatingBarChangeListener

Added in API level 1
RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

Returns
RatingBar.OnRatingBarChangeListener The listener (may be null) that is listening for rating change events.

getRating

Added in API level 1
float getRating ()

Gets the current rating (number of stars filled).

Returns
float The current rating.

getStepSize

Added in API level 1
float getStepSize ()

Gets the step size of this rating bar.

Returns
float The step size.

isIndicator

Added in API level 1
boolean isIndicator ()

Related XML Attributes:

Returns
boolean Whether this rating bar is only an indicator.

setIsIndicator

Added in API level 1
void setIsIndicator (boolean isIndicator)

Whether this rating bar should only be an indicator (thus non-changeable by the user).

Related XML Attributes:

Parameters
isIndicator boolean: Whether it should be an indicator.

setMax

Added in API level 1
void setMax (int max)

Set the range of the progress bar to 0...max.

Parameters
max int: the upper range of this progress bar

setNumStars

Added in API level 1
void setNumStars (int numStars)

Sets the number of stars to show. In order for these to be shown properly, it is recommended the layout width of this widget be wrap content.

Parameters
numStars int: The number of stars.

setOnRatingBarChangeListener

Added in API level 1
void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

Sets the listener to be called when the rating changes.

Parameters
listener RatingBar.OnRatingBarChangeListener: The listener.

setRating

Added in API level 1
void setRating (float rating)

Sets the rating (the number of stars filled).

Parameters
rating float: The rating to set.

setStepSize

Added in API level 1
void setStepSize (float stepSize)

Sets the step size (granularity) of this rating bar.

Parameters
stepSize float: The step size of this rating bar. For example, if half-star granularity is wanted, this would be 0.5.

Protected methods

onMeasure

Added in API level 1
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height. This method is invoked by measure(int, int) and should be overridden by subclasses to provide accurate and efficient measurement of their contents.

CONTRACT: When overriding this method, you must call setMeasuredDimension(int, int) to store the measured width and height of this view. Failure to do so will trigger an IllegalStateException, thrown by measure(int, int). Calling the superclass' onMeasure(int, int) is a valid use.

The base class implementation of measure defaults to the background size, unless a larger size is allowed by the MeasureSpec. Subclasses should override onMeasure(int, int) to provide better measurements of their content.

If this method is overridden, it is the subclass's responsibility to make sure the measured height and width are at least the view's minimum height and width (getSuggestedMinimumHeight() and getSuggestedMinimumWidth()).

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

Hooray!