RatingBar使用

举报
再见孙悟空_ 发表于 2022/01/13 23:28:04 2022/01/13
【摘要】 RatingBar是ProgressBar的一个延伸,ProgressBar的进度一般由代码控制,RatingBar的进度可以拖拽来控制。 默认效果如下: 163.gif 看到这个效果图之后,您可能会想到打车软件和订餐软件上打五星好评的UI了吧,RatingBar可以完美实现这个效果。 (1)监听 监听Ratin...

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

默认效果如下:

163.gif

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

(1)监听

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


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

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


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item
  4. android:id="@android:id/background"
  5. android:drawable="@mipmap/xiong_off"/>
  6. <item
  7. android:id="@android:id/progress"
  8. android:drawable="@mipmap/xiong_on"/>
  9. </layer-list>

两张图片如下:

xiong_on.png

xiong_off.png

希望对大家有所帮助。欢迎各位小伙伴加入我的qq群:开发一群:454430053 (付费)开发二群:537532956 (付费)开发三群:812695329(免费)这里已经有很多小伙伴在等你了,快来加入我们吧!

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/109855485

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。