Android星级评分条控件RatingBar使用详解
发布时间 - 2026-01-11 01:46:29 点击率:次Android开发中,时不时的就有要实现星星的评分效果,比如某宝,某团,相信大家也都见过,当然了我们可以自己去画,也可以用美工给切的图去实现,其实在Android原生的控件中就可以来实现这样的效果,它就是RatingBar。
来,我们先看一张图(只在代码中引入了控件)
实现效果如下图:
我们先看一下它的继承关系:这玩意和SeekBar的类结构是一样的,也是ProgressBar的子类
相关属性:
android:isIndicator:是否用作指示,用户无法更改,默认false
android:numStars:显示多少个星星,必须为整数
android:rating:默认评分值,必须为浮点数
android:stepSize: 评分每次增加的值,必须为浮点数
除了上面这些,还有两种样式供我们选择咧,但是不建议使用,因为这两种样式都好丑... 他们分别是:
style="?android:attr/ratingBarStyleSmall"
style="?android:attr/ratingBarStyleIndicator"
事件处理: 只需为RatingBar设置OnRatingBarChangeListener事件,然后重写下onRatingChanged()方法即可!
实现代码如下:
public class MainActivity extends AppCompatActivity {
private RatingBar rb_normal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rb_normal = (RatingBar) findViewById(R.id.rb_normal);
rb_normal.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(MainActivity.this, "rating:" + String.valueOf(rating),
Toast.LENGTH_LONG).show();
}
});
}
}
自定义样式阶段:
接下来和前面的SeekBar一样编写一个layer-list的文件:
ratingbar_full.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/ic_rating_off1" /> <item android:id="@android:id/secondaryProgress" android:drawable="@mipmap/ic_rating_off1" /> <item android:id="@android:id/progress" android:drawable="@mipmap/ic_rating_on1" /> </layer-list>
接着在style.xml中自定义下RatingBar Style,在style.xml加上这个:
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/ratingbar_full</item> <item name="android:minHeight">24dip</item> <item name="android:maxHeight">24dip</item> </style>
最后在布局中的Ratingbar组件设置下:
<RatingBar android:id="@+id/rb_normal" style="@style/roomRatingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" />
可以实现效果如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# RatingBar
# 评分
# Android开发之自定义星星评分控件RatingBar用法示例
# Android RatingBar星星评分控件实例代码
# Android自定义控件RatingBar调整字体大小
# Android开发手册RatingBar星级评分控件实例
# 自定义
# 先看
# 如下图
# 浮点数
# 子类
# 就有
# 见过
# 两种
# 可以用
# 只需
# 我们可以
# 也都
# 只在
# 可以实现
# 这两种
# 来实现
# 中就
# 大家多多
# 多少个
# 一张图
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
北京网站制作公司哪家好一点,北京租房网站有哪些?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何撰写建站申请书?关键要点有哪些?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
如何用IIS7快速搭建并优化网站站点?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
高防服务器租用指南:配置选择与快速部署攻略
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
如何在万网利用已有域名快速建站?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
如何在IIS中新建站点并解决端口绑定冲突?
如何在IIS中新建站点并配置端口与物理路径?
iOS验证手机号的正则表达式
详解Android——蓝牙技术 带你实现终端间数据传输
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Laravel如何使用Gate和Policy进行授权?(权限控制)
Android利用动画实现背景逐渐变暗
昵图网官网入口 昵图网素材平台官方入口
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何在局域网内绑定自建网站域名?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
如何快速重置建站主机并恢复默认配置?
如何在云服务器上快速搭建个人网站?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel如何使用Service Container和依赖注入?(代码示例)
教你用AI将一段旋律扩展成一首完整的曲子
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何在宝塔面板中创建新站点?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
html如何与html链接_实现多个HTML页面互相链接【互相】
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何在腾讯云服务器上快速搭建个人网站?
如何在Windows 2008云服务器安全搭建网站?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
网站制作免费,什么网站能看正片电影?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
如何在云主机上快速搭建多站点网站?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
*服务器网站为何频现安全漏洞?
上一篇:算法竞赛(二)
下一篇:虚拟机磁盘使用查看工具
上一篇:算法竞赛(二)
下一篇:虚拟机磁盘使用查看工具

