I want to reduce the size of the Rating bar, I got some style properties that do it, but they are out of the reach of user interaction they are just Indicator. So, please let me know how to reduce the size. Thanks in advance.
-
1refer this link may serves your requirements http://stackoverflow.com/questions/2874537/how-to-make-a-smaller-ratingbar/6882182#6882182 – Mohammed Azharuddin Shaikh Jul 30 '11 at 09:43
4 Answers
How to glue the code given here ...
Step-1. You need your own rating stars in res/drawable
...
Step-2 In res/drawable
you need ratingstars.xml
as follow ...
<?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_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/star_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/star" />
</layer-list>
Step-3 In res/values
you need styles.xml
as follow ...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingstars</item>
<item name="android:minHeight">22dip</item>
<item name="android:maxHeight">22dip</item>
</style>
</resources>
Step-4 In your layout ...
<RatingBar
android:id="@+id/rtbProductRating"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numStars="5"
android:rating="3.5"
android:isIndicator="false"
style="@style/foodRatingBar"
/>
Try Activity ....
package x.y;
import android.app.Activity;
import android.os.Bundle;
public class RatingBarDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product);
}
}
With this layout product.xml
...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<ImageView
android:id="@+id/imgProduct"
android:layout_width="50dip"
android:layout_height="50dip"
android:src="@drawable/icon"
android:scaleType="centerCrop"
/>
<RelativeLayout
android:id="@+id/layProductInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/imgProduct"
android:paddingLeft="5dip"
android:paddingRight="0dip"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<TextView
android:id="@+id/tvProductName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Product Name"
android:textSize="17dip"
/>
<RatingBar
android:id="@+id/rtbProductRating"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numStars="5"
android:rating="3.5"
android:isIndicator="false"
style="@style/foodRatingBar"
android:layout_below="@id/tvProductName"
/>
<TextView
android:id="@+id/tvPriceLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="$45.87"
android:layout_toRightOf="@id/rtbProductRating"
android:layout_below="@id/tvProductName"
android:paddingLeft="10dip"
android:textSize="17dip"
/>
</RelativeLayout>
</RelativeLayout>

- 12,428
- 10
- 61
- 73
-
1
-
1If I use rating bar this way then rating star images are being stretched at below side. What can I do to prevent this? – Jayeshkumar Sojitra Mar 12 '14 at 12:45
-
1AFAIK There is a limitation of platform that rating stars will not be scaled automatically, so the size of drawables for rating stars must be same with maxHeight and maxWidth. – Vaibhav Jani Mar 13 '14 at 04:26
I've searched through a lot of posts with the same question here and I was trying out the answer provided by @Vaibhav A. Jani, when I just stopped by a more simple solution to this question. I am not saying that @Vaibhav A. Jani answer is not correct tho.
Try this, it worked for me to see stars much smaller:
RatingBar ratingBar = new RatingBar(context, null, android.R.attr.ratingBarStyleSmall);
And also I was able to create lots of RatingBar dynamically, without touching any xml file, just java coding.
Try changing style
<RatingBar
android:layout_width="wrap_content"
android:rating="4.5"
style="@style/Base.Widget.AppCompat.RatingBar.Small"
android:layout_height="wrap_content" />

- 29
- 9
Working Code : You can easily reduce size of rating bar stars Just add in xml as below
android:scaleX="0.5" android:scaleY="0.5"
<RatingBar
android:id="@+id/ratingBar_visibility"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:numStars="5"
android:scaleX="0.5"
android:scaleY="0.5" />

- 330
- 3
- 9