RatingBar是ProgressBar的一个延伸,ProgressBar的进度一般由代码控制,RatingBar的进度可以拖拽来控制。

默认效果如下:

android RatingBar基本使用介绍_其他

163.gif

看到这个效果图之后,您可能会想到打车软件和订餐软件上打五星好评的UI了吧,RatingBar可以完美实现这个效果。

(1)监听

监听RatingBar进度情况的代码如下:

 

    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        }
    });

rating参数为当前进度值。

(2)RatingBar的4个属性

  • android:isIndicator

RatingBar的指示是否起作用,默认为false,如果为true,RatingBar的进度不能被人为修改。

  • android:numStars

显示星星的总数量,必须为整数。

  • android:rating

设置默认评分值,值为浮点数。

  • android:stepSize

评分每次增加的值(最小变化值),值为浮点数。

(3)系统样式

android RatingBar基本使用介绍_浮点数_02

图片.png

系统样式有三种:

  • 默认样式

 

    style="?attr/ratingBarStyle"

 

    style="@style/Widget.AppCompat.RatingBar"
  • 指示器样式

 

    style="?attr/ratingBarStyleIndicator"

 

    style="@style/Widget.AppCompat.RatingBar.Indicator"
  • 小型样式

 

    style="?attr/ratingBarStyleSmall"

 

    style="@style/Widget.AppCompat.RatingBar.Small"

(4)progressDrawable的使用

系统无样式往往还无法满足大部分需求,如果需要将星星换成其它图案呢?

使用progressDrawable属性,设置RatingBar的背景样式。效果图如下:

android RatingBar基本使用介绍_xml_03

图片.png

代码如下:

 

    android:progressDrawable="@drawable/ratingbar_bg"

ratingbar_bg.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="@mipmap/xiong_off"/>
    <item
        android:id="@android:id/progress"
        android:drawable="@mipmap/xiong_on"/>
</layer-list>

两张图片如下:

android RatingBar基本使用介绍_其他_04

xiong_on.png

android RatingBar基本使用介绍_xml_05

xiong_off.png


欢迎各位小伙伴加入我的qq群:开发一群:454430053 开发二群:537532956   这里已经有很多小伙伴在等你了,快来加入我们吧