美文网首页
Android控件<第二篇>:RatingBar

Android控件<第二篇>:RatingBar

作者: NoBugException | 来源:发表于2021-08-29 08:21 被阅读0次

RatingBar是ProgressBar的一个延伸,ProgressBar的进度一般由代码控制,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)系统样式
图片.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的背景样式。效果图如下:

图片.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>

两张图片如下:

xiong_on.png xiong_off.png

[本章完...]

相关文章

网友评论

      本文标题:Android控件<第二篇>:RatingBar

      本文链接:https://www.haomeiwen.com/subject/xluiiltx.html