RatingBar


1、嵌套类

  

接口:RatingBar.OnRatingBarChangeListener

  一个回调函数,当星级进度改变时修改客户端的星级。

2、XML属性

             

属性名称

描述

android:isIndicator

RatingBar是否是一个指示器(用户无法进行更改)

android:numStars

显示的星型数量必须是一个整形值,像“100”。

android:rating

默认的评分,必须是浮点类型,像“1.2”。

android:stepSize

评分的步长必须是浮点类型,像“1.2”。



3、公共方法


public int getNumStars ()

    返回显示的星型数量

      返回值

                  显示的星型数量

 

  public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

监听器(可能为空)监听评分改变事件

 

  public float getRating ()

  获取当前的评分(填充的星型的数量)

  返回值

  当前的评分

 

  public float getStepSize ()

  获取评分条的步长

  返回值

  步长

 

  public boolean isIndicator ()

返回值

                判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)

 

  public void setIsIndicator (boolean isIndicator)

  设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)

  参数

  isIndicator       Bool值,是否是一个指示器

 

  public synchronized void setMax (int max)

  设置评分等级的范围,从0max

  参数

  max         评分条最大范围。

 

  public void setNumStars (int numStars)

  设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为

wrap content

  参数

  numStars         星型的数量

 

  public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

  设置当评分等级发生改变时回调的监听器

  参数

  listener  监听器

 

  public void setRating (float rating)

  设置分数(星型的数量)

  参数

  rating      设置的分数

 

  public void setStepSize (float stepSize)

  设置当前评分条的步长(step size

  参数

  stepSize 评分条的步进。例如:如果想要半个星星,它的值为0.5





4、自定义RatingBar  

1)布局里面的RatingBar控件定义:

    <RatingBar   
        style="@style/foodRatingBar"   
        Android:stepSize="1.0" 步长  
        android:layout_height="wrap_content"   
        android:layout_width="wrap_content"   
        android:rating="3"  默认选中的星数量  
        android:id="@+id/ratingbarId">  
    </RatingBar>  


2)定义第一步中的style:


<?xml version="1.0" encoding="utf-8"?>    
<resources>    
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">    
    <!--指向star_rating_bar_full.xml文件 -->  
        <item name="android:progressDrawable">@drawable/star_rating_bar_full</item>
        <item name="android:minHeight">31dip</item>
        <item name="android:maxHeight">31dip</item>
    </style>    
</resources>  

3)定义第二步用到的star_rating_bar_full



    <?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_ratingbar_empty"  
              />    
        <!-- 没选中状态 -->  
        <item android:id="@+android:id/secondaryProgress"    
              android:drawable="@drawable/star_ratingbar_empty" />    
        <!-- 选中状态 -->  
        <item android:id="@+android:id/progress"    
              android:drawable="@drawable/star_ratingbar_full"  />   
    </layer-list>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 的 RatingBar 控件是一种用户评分控件,可以在应用中显示一组星形图标,用户可以通过点击星形图标来为应用或产品进行评分。RatingBar 控件通常用于应用市场或评估应用的功能中。 RatingBar 控件有以下属性: - android:numStars:指定 RatingBar 中星形图标的数量。 - android:rating:指定 RatingBar 的当前评分值。 - android:stepSize:指定评分的步长,例如设置为 0.5,则评分只能是整数或半数(例如 3.0、3.5、4.0 等)。 - android:isIndicator:指定 RatingBar 是否是只读的,即用户是否可以更改评分值。 RatingBar 控件还可以通过监听器来检测评分值的变化。例如,可以使用 OnRatingBarChangeListener 监听器来在评分值发生更改时执行自定义操作。 以下是 RatingBar 控件的示例代码: ``` <RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="0.5" android:rating="3.0" android:isIndicator="false" /> ``` 在代码中,可以使用 setRating() 方法来动态设置评分值,例如: ``` RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); ratingBar.setRating(4.5f); ``` 在监听器中,可以使用 getRating() 方法来获取当前的评分值,例如: ``` RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Log.d("MyApp", "Rating changed to " + rating); } }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值