Problem in reducing size of Rating Bar.

前端 未结 4 1661
醉梦人生
醉梦人生 2020-12-25 08:50

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 le

相关标签:
4条回答
  • 2020-12-25 09:01

    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" />
    
    0 讨论(0)
  • 2020-12-25 09:05

    How to glue the code given here ...

    Step-1. You need your own rating stars in res/drawable ...

    A full star

    Empty star

    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>
    
    0 讨论(0)
  • 2020-12-25 09:06

    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.

    Reference

    0 讨论(0)
  • 2020-12-25 09:13

    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" />
    
    0 讨论(0)
提交回复
热议问题