SimpleRatingBar
Open source project which features a simple yet powerful RatingBar alternative to Android's default.
Features
- Fully working
android:layout_width
: it can be set towrap_content
,match_parent
or abritary dp. - Arbitrary number of stars.
- Arbitrary step size.
- Size of stars can be controlled exactly or by setting a maximum size.
- Customizable colors in normal state (border, fill and background of stars and rating bar).
- Customizable colors in pressed state (border, fill and background of stars and rating bar).
- Customizable size separation between stars.
- Customizable border width of stars.
- Customizable stars corner radius.
- Allows to set OnRatingBarChangeListener and OnClickListener
- Stars fill can be set to start from left to right or from right to left (RTL language support).
- AnimationBuilder integrated in the view to set rating programatically with animation.
Usage
In your layout file:
<com.iarcuschin.simpleratingbar.SimpleRatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srb_starSize="40dp"
app:srb_numberOfStars="5"
app:srb_rating="3"
app:srb_stepSize="0.5"
app:srb_borderColor="@color/blue"
app:srb_fillColor="@color/light_blue"
/>
More examples in the sample app layouts.
Example of setting rating with animation:
SimpleRatingBar.AnimationBuilder builder = myRatingBar.getAnimationBuilder()
.setRatingTarget(3)
.setDuration(2000)
.setInterpolator(new BounceInterpolator());
builder.start();
Configuration
The view can be configured as follows:
- Set the number of stars with
app:srb_numberOfStars
/setNumberOfStars(int)
- Set the rating with
app:srb_rating
/setRating(float)
- Set step size with
app:srb_stepSize
/setStepSize(float)
- Set star size with
app:srb_starSize
/setStarSize(float)
- Set max star size with
app:srb_maxStarSize
/setMaxStarSize(float)
- Set separation between stars with
app:srb_starsSeparation
/setStarsSeparation(float)
- Set border width with
app:srb_starBorderWidth
/setStarBorderWidth(float)
- Set stars corner radius with
app:srb_starCornerRadius
/setStarCornerRadius(float)
- Set stars border color in normal state with
app:srb_borderColor
/setBorderColor(@ColorInt int)
- Set stars fill color in normal state with
app:srb_fillColor
/setFillColor(@ColorInt int)
- Set stars background color in normal state with
app:srb_starBackgroundColor
/setStarBackgroundColor(@ColorInt int)
- Set background color of rating bar in normal state with
app:srb_backgroundColor
/setBackgroundColor(@ColorInt int)
- Set stars border color in pressed state with
app:srb_pressedBorderColor
/setPressedBorderColor(@ColorInt int)
- Set stars fill color in pressed state with
app:srb_pressedFillColor
/setPressedFillColor(@ColorInt int)
- Set stars background color in pressed state with
app:srb_pressedStarBackgroundColor
/setPressedStarBackgroundColor(@ColorInt int)
- Set background color of rating bar in pressed state with
app:srb_pressedBackgroundColor
/setPressedBackgroundColor(@ColorInt int)
- Enabled/disable user interaction with
app:srb_isIndicator
/setIsIndicator(boolean)
- Enabled/disable border of star with
app:srb_drawBorderEnabled
/setDrawBorderEnabled(boolean)
- Set gravity of fill (left or right) with
app:srb_gravity
/setGravity(Gravity)
Download
Using Gradle
from jcenter
:
repositories {
jcenter()
}
dependencies {
compile 'com.iarcuschin:simpleratingbar:0.1.5'
}
Using Gradle
from Maven Central
:
repositories {
mavenCentral()
}
dependencies {
compile 'com.iarcuschin:simpleratingbar:0.1.5'
}
Using Gradle
from JitPack
:
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compile 'com.github.FlyingPumba:SimpleRatingBar:v0.1.5'
}
Using Maven
:
<dependency>
<groupId>com.iarcuschin</groupId>
<artifactId>simpleratingbar</artifactId>
<version>0.1.5</version>
<type>apklib</type>
</dependency>