发布造型评级栏

时间:2016-02-19 13:31:35

标签: android ratingbar

我有问题造型评级栏

这是截图

我想减少评级栏的大小。我知道我可以使用小样式来缩小它们但是它太小了。我可以做一些中等风格吗?。

这是我的xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#F0EEEF">
<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="RATE OUR SERVICES"
    android:gravity="center"
    android:textColor="@color/textColor"
    android:textStyle="bold"/>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="By Quality"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"/>
    <RatingBar
        android:theme="@style/RatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:numStars="5"
        android:isIndicator="false" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="By Services"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"/>
    <RatingBar
        android:theme="@style/RatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:numStars="5"
        android:isIndicator="false" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="By Time"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"/>
    <RatingBar
        android:theme="@style/RatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:numStars="5"
        android:isIndicator="false" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Overall Rating"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"/>
    <RatingBar
        android:theme="@style/RatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:numStars="5"
        android:isIndicator="false" />
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

您可以使用自定义RatingBar。以下是代码 1.在drawable中创建一个custom_ratingbar.xml文件

<?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_full" />
</layer-list>

然后在RatingBar中使用以下内容: -

<RatingBar
    android:id="@+id/ratingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:progressDrawable="@drawable/custom_ratingbar"
    android:numStars="5"
    android:stepSize="0.2"
    android:rating="3.0" />

答案 1 :(得分:0)

您可以为评级栏创建自定义样式,使其具有合适的尺寸:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:minHeight">48dip</item> <!-- your desired size -->
        <item name="android:maxHeight">48dip</item> <!-- your desired size -->
    </style>  
</resources>

然后将此样式用于评级栏。 还有更具体的教程:http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/

答案 2 :(得分:0)

我制作了一个可以帮助您的自定义评级栏:SimpleRatingBar

它的特点:

  • 完全正常工作android:layout_width:可以将其设置为wrap_contentmatch_parent或abritary dp。
  • 任意数量的明星。
  • 任意步长。
  • 可以精确控制星星的大小,也可以通过设置最大大小来控制。
  • 可自定义的颜色(星星的边框,填充和背景)。
  • 明星之间可定制的尺寸分离。
  • 可自定义的星星边框宽度。
  • 允许设置OnRatingBarChangeListener
  • 星星填充可以设置为从左到右或从右到左(RTL语言支持)。
  • 在视图中集成了AnimationBuilder,以动画方式设置评级。

Here is a preview of it

您可以在jcenterMaven Central中找到它。因此,在build.gradle文件中,只需添加依赖项:

compile 'com.iarcuschin:simpleratingbar:0.1.+'

我希望它有用。