RatingBar的实现其实是很简单的,只要在xml布局文件中写就行了

范例:

在主布局文件中,只需要写<RatingBar/>即可

main.xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2  xmlns:tools="http://schemas.android.com/tools"  3  android:layout_width="match_parent"  4  android:layout_height="match_parent"  5  tools:context="com.jorlee.ratingbar.MainActivity" >  6  7 <RatingBar  8 android:id="@+id/rating_bar"  9  style="@style/myRatingBar" 10  android:layout_height="wrap_content" 11  android:layout_width="wrap_content" 12  android:numStars="5" 13  android:stepSize="0.1" 14  android:rating="2.5"> 15 </RatingBar> 16 17 18 </RelativeLayout>

RatingBar的layout_height和layout_width一般都设置成wrap_content ,避免图片显示不全的问题

numStars是星星显示的个数,即评分级数

stepSize可以理解为一个评分单位,这里设置为0.1就是最小可以评0.1颗星星

rating是当前评分的星星颗数,这里设置为2.5就是当前有两个半星星被评了分

其中,在main.xml文件中的第9行,style就是自定义RatingBar的关键之处,因此,需要在res/values目录下写一个xml文件

RatingBar.xml

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3      <style name="myRatingBar" parent="@android:style/Widget.RatingBar">
4         <item name="android:progressDrawable">@drawable/rating_bar</item>
5         <item name="android:minHeight">44dip</item>
6         <item name="android:maxHeight">44dip</item>
7     </style>
8
9 </resources> 

其中style name ="myRatingBar"里面的name "myRatingBar"要对应于main.xml文件中的style="@style/myRatingBar"

<item name="android:minHeight">44dip</item>

<item name="android:maxHeight">44dip</item>

这两个是设置RatingBar的大小的

<item name="android:progressDrawable">@drawable/rating_bar</item>

这个是设置RatingBar样式的,默认的RatingBar是星星的图片,如果想用自己的图片的话,就在res/drawable目录下写一个rating_bar.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 3
 4     <item android:id="@+android:id/background"
 5           android:drawable="@drawable/pre_unpre"></item>
 6
 7     <item android:id="@+android:id/secondaryProgress"
 8           android:drawable="@drawable/empty">
 9
10     </item>
11
12     <item android:id="@+android:id/progress"
13           android:drawable="@drawable/all">
14     </item>
15
16 </layer-list>

secondaryProgress设置为没有评分时的图片

progress设置为评分之后的效果图片

系统会自动生成中间过程的效果的图片

在background里也可以设置背景效果,这里我写了一个点击RatingBar发生变化的效果

pre_unpre.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 3
 4    <item android:state_pressed="true"
 5        android:drawable="@drawable/bg710">
 6    </item>
 7
 8    <item android:state_pressed="false"
 9        android:drawable="@drawable/empty"></item>
10 </selector>

至此,RatingBar的自定义就写完了。

贴上效果图:(因为图片是随便找的,而且找的也是星星,很丑,勿喷)

转载于:https://www.cnblogs.com/joeleedreamer/p/4662776.html

RatingBar的自定义相关推荐

  1. Android中RatingBar的自定义效果

    Android中RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出, ...

  2. android字体ratingbar,Android 自定义View之自定义评分选择器RatingBar

    DtRatingBar 一个使用在android上的RatingBar.GitHub地址:DtRatingBar 使用依赖: implementation 'com.yetland.dtratingb ...

  3. android ratingbar样式,自定义RatingBar的样式

    写星座运势,难免要写RatingBar. 用法: 1.属性 android:numStars : 星星个数 android:rating : 默认点亮的星星星星个数 android:stepSize  ...

  4. android ratingbar 版本支持,Android用来替代RatingBar的自定义ImageRatingView

    项目地址:https://github.com/qingtenglv/ImageRatingView 因为android自带的RatingBar用起来不是很方便,于是决定自己写一个替代品.欢迎大家去g ...

  5. Android 控件之RatingBar评分条(五星)自定义样式

    RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出,自定义这样的组件 ...

  6. android 自定义音量调节,Android——自定义音量调节控件

    今天我们要实现一个上图中音量调节的效果.主要有两种实现方式自定义RatingBar和自定义View. 自定义RatingBar volume_rating.xml main.xml android:i ...

  7. Android初级教程:RatingBar的使用

    记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了.那么本篇文章就对RatingBar的使用做一个基本的认识. 接下来就是正题,那就是对于Ratin ...

  8. 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...

    [Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距

  9. android 评分条 RatingBar 使用及自定义

    一.先上效果图片: 第一个是自定义: 第二个是原生的: 二.atingBar 介绍: RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定.使用RatingBar ...

最新文章

  1. CLR Via CSharp读书笔记(14):字符、字符串和文本处理
  2. 妄想性仮想人格障害 新手教程 +改动器
  3. 市直系统推荐市级以上表彰的_推荐市级以及以上教学方面表彰的细则
  4. ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?
  5. csu 1812: 三角形和矩形 凸包
  6. [转]PhotoShop小技巧
  7. 如何快速计算出三相电流的数值呢
  8. android 崩溃相关
  9. linux 搭建论坛(虚拟机)
  10. 【MM小贴士】SAP创建成本中心采购订单带出默认会计科目和成本中心
  11. js挂马,臭名昭著nu99.com
  12. WebRTC系列<四> 全面了解客户端-服务器网页游戏的WebRTC
  13. 世界各国的12个王朝
  14. 机器学习入门必须掌握的8个关键词知识
  15. bzoj1296【SCOI2009】粉刷匠
  16. 激光雷达对植被冠层结构和SIF同时探测展望
  17. 数字图像处理的招聘公司
  18. pythonsl火车加字_sl命令让火车在Linux桌面上跑
  19. NVIDIA SMI命令
  20. 敦煌石窟古代“腊八节”:沐浴食粥 狩猎腊祭

热门文章

  1. MFC遍历指定目录下的所有文件/文件夹(不遍历子目录)
  2. bootstrap .navbar-header 控制button隐藏/显示
  3. React开发(284):注意点击事件大小写
  4. [react] 你是如何划分React组件的?
  5. [react] React根据不同的环境打包不同的域名?
  6. React开发(210):react中try...catch..
  7. React开发(174):ant design按钮确认删除
  8. [html] 怎样在页面上实现一个圆形的可点击区域?
  9. [vue] 如果将axios异步请求同步化处理?
  10. [css] 你知道什么是面向对象的css(oocss)吗?有没有实践过?