If you do not want Default RatingBar implementation then you can customize it by creating your own layouts and styles for it.
You need to get 3-star images to be added to your drawable folder.
1. A Empty (off) star image.
2. A Half Filled Star image.
3. A Fully Filled Star image.
Now create a custom XML for RatingBar in Drawable folder,
<?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/star_blank"/>
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/star_blank"/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/star_filled"/>
</layer-list>
start_blank.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/star_off"
android:state_pressed="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star_off"
android:state_focused="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star_off"
android:state_selected="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star_off"/>
</selector>
star_filled.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/star"
android:state_pressed="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star"
android:state_focused="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star"
android:state_selected="true"
android:state_window_focused="true"/>
<item android:drawable="@drawable/star"/>
</selector>
Add the following to style.xml
<style name="customRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/rating_custom_bar</item>
<item name="android:minHeight">30dip</item>
<item name="android:maxHeight">30dip</item>
</style>
Layout.xml
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.example.customratingbarexample.MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="108dp"
android:text="@string/header_text" />
<RatingBar
android:id="@+id/ratingBar1"
style="@style/customRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="56dp" />
<TextView
android:id="@+id/ratingMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_centerVertical="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
MainActivity.java
package com.code2care.example.customratingbarexample;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
RatingBar ratingBar;
TextView rateMessage;
String ratedValue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
rateMessage = (TextView) findViewById(R.id.ratingMessage);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
System.out.println("Hwre");
ratedValue = String.valueOf(ratingBar.getRating());
rateMessage.setText("Rating : "
+ ratedValue + "/5");
}
});
}
}
⛏️ You can download the source code from GitHub: https://github.com/code2care/CustomRatingBarExample
More Posts related to Android,
- Android : Execute some code after back button is pressed
- Android is starting optimizing... app 1 of 1
- How to change Android Button Color using xml attribute and programatically using java
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- How to make Android EditText not editable
- Make Android TextView Clickable like Buttons
- Unable to establish connection to adb : Android Studio Error
- Android Constant and Resource Type Mismatches Lint
- Android Shared Preferences API tutorial
- Fixing Android unknown error 961 while downloading app
- DDMS files not found hprof-conv.exe
- How to reset eclipse layout
- Android Developers Bluetooth Tutorial
- Android Studio Native typeface cannot be made error
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Multiline EditText in Android Example
- How to screenshot on Android?
- JavaScript : redirect page to other url
- Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration
- How To Disable Landscape Mode in Android Application
- Change Title text for Android Activity using java code
- Android : Class file collision: A resource exists with a different case
- Android Emulator Soft Back button action using Computer keyboard
- Device not compatible error Android Google Play Store
- ERROR x86 emulation currently requires hardware acceleration. Intel HAXM is not installed on this machine
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- Disable Fading Edges Scroll Effect Android Views
- Android : Unable to load VM from snapshot : Mac OS X Error
- Change Android EditText Cursor Height
- What is Android Toast.LENGTH_SHORT and Toast. LENGTH_LONG durations
- How to add border to Android TextView
- Remove ActionBar from Activity that extends appcompat-v7
- How to send SMS on Android Emulator
- Android RatingBar Example
- This Toast was not created with Toast.makeText() : Android RuntimeException
- Android Studio Ctrl Shift o auto import not working
- Android : Duplicate registration for activity com.example.abc
- ADT Installation Error: requires plug-in org.eclipse.wst.sse.ui
- Running Android Lint has encountered a problem NullPointerException Error
- Android Emulator] ##KBD: Full queue, lose event Error Logs
- Export aborted because fatal lint error were found
- Android Parsing Data for android-L failed Unsupported major.minor version 51.0 Error
- Android : Accidental Octal Lint Warning
- Android ListView turns Black or Flickers while Scrolling
- How to make a dummy phone call from Android Emulator device
More Posts:
- SharePoint An unexpected error has occurred - Correlation ID and Merge-SPlogfile - SharePoint
- MySQL : Error :1004 SQLSTATE: HY000 (ER_CANT_CREATE_FILE) Can't create file - MySQL
- [Solved] Bootstrap tooltip not working - Bootstrap
- Android Error Generating Final Archive - Debug Certificate Expired - Android
- No Android device found : Android File Transfer App Mac OS X - Android
- Simple Login Page using Bootstrap - Bootstrap
- JDK Location in Android Studio - Android-Studio
- How to word wrap in HTML - Html
- Setting up RSS feeds notifications within Outlook - HowTos
- How to change TextView or EditText Text Color on Focus and on Press - Android
- [Solved] com.sun.xml.ws.transport.http.servlet.WSServletContextListener ClassNotFoundException - Java
- vi undo command - Mac-OS-X
- How to send SMS on Android Emulator - Android
- Java XML-RPC java.net.BindException: Address already in use - Java
- Change Google Chrome Browsers default download location - Chrome