RatingBar的自定义
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的自定义相关推荐
- Android中RatingBar的自定义效果
Android中RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出, ...
- android字体ratingbar,Android 自定义View之自定义评分选择器RatingBar
DtRatingBar 一个使用在android上的RatingBar.GitHub地址:DtRatingBar 使用依赖: implementation 'com.yetland.dtratingb ...
- android ratingbar样式,自定义RatingBar的样式
写星座运势,难免要写RatingBar. 用法: 1.属性 android:numStars : 星星个数 android:rating : 默认点亮的星星星星个数 android:stepSize ...
- android ratingbar 版本支持,Android用来替代RatingBar的自定义ImageRatingView
项目地址:https://github.com/qingtenglv/ImageRatingView 因为android自带的RatingBar用起来不是很方便,于是决定自己写一个替代品.欢迎大家去g ...
- Android 控件之RatingBar评分条(五星)自定义样式
RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出,自定义这样的组件 ...
- android 自定义音量调节,Android——自定义音量调节控件
今天我们要实现一个上图中音量调节的效果.主要有两种实现方式自定义RatingBar和自定义View. 自定义RatingBar volume_rating.xml main.xml android:i ...
- Android初级教程:RatingBar的使用
记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了.那么本篇文章就对RatingBar的使用做一个基本的认识. 接下来就是正题,那就是对于Ratin ...
- 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...
[Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距
- android 评分条 RatingBar 使用及自定义
一.先上效果图片: 第一个是自定义: 第二个是原生的: 二.atingBar 介绍: RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定.使用RatingBar ...
最新文章
- CLR Via CSharp读书笔记(14):字符、字符串和文本处理
- 妄想性仮想人格障害 新手教程 +改动器
- 市直系统推荐市级以上表彰的_推荐市级以及以上教学方面表彰的细则
- ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?
- csu 1812: 三角形和矩形 凸包
- [转]PhotoShop小技巧
- 如何快速计算出三相电流的数值呢
- android 崩溃相关
- linux 搭建论坛(虚拟机)
- 【MM小贴士】SAP创建成本中心采购订单带出默认会计科目和成本中心
- js挂马,臭名昭著nu99.com
- WebRTC系列<四> 全面了解客户端-服务器网页游戏的WebRTC
- 世界各国的12个王朝
- 机器学习入门必须掌握的8个关键词知识
- bzoj1296【SCOI2009】粉刷匠
- 激光雷达对植被冠层结构和SIF同时探测展望
- 数字图像处理的招聘公司
- pythonsl火车加字_sl命令让火车在Linux桌面上跑
- NVIDIA SMI命令
- 敦煌石窟古代“腊八节”:沐浴食粥 狩猎腊祭
热门文章
- MFC遍历指定目录下的所有文件/文件夹(不遍历子目录)
- bootstrap .navbar-header 控制button隐藏/显示
- React开发(284):注意点击事件大小写
- [react] 你是如何划分React组件的?
- [react] React根据不同的环境打包不同的域名?
- React开发(210):react中try...catch..
- React开发(174):ant design按钮确认删除
- [html] 怎样在页面上实现一个圆形的可点击区域?
- [vue] 如果将axios异步请求同步化处理?
- [css] 你知道什么是面向对象的css(oocss)吗?有没有实践过?