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 】
相关推荐:
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
韩国服务器如何优化跨境访问实现高效连接?
如何获取上海专业网站定制建站电话?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何与Pusher实现实时通信?(WebSocket示例)
如何用好域名打造高点击率的自主建站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何在云指建站中生成FTP站点?
如何快速搭建高效WAP手机网站吸引移动用户?
🚀拖拽式CMS建站能否实现高效与个性化并存?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
如何快速生成高效建站系统源代码?
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
如何在万网自助建站平台快速创建网站?
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何快速生成专业多端适配建站电话?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何在IIS中配置站点IP、端口及主机头?
如何在Windows虚拟主机上快速搭建网站?
黑客入侵网站服务器的常见手法有哪些?
南京网站制作费用,南京远驱官方网站?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Android自定义控件实现温度旋转按钮效果
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
php485函数参数是什么意思_php485各参数详细说明【介绍】
QQ浏览器网页版登录入口 个人中心在线进入
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
网站建设整体流程解析,建站其实很容易!
原生JS获取元素集合的子元素宽度实例
微信公众帐号开发教程之图文消息全攻略
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel安装步骤详细教程_Laravel环境搭建指南
制作电商网页,电商供应链怎么做?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
详解jQuery中的事件
海南网站制作公司有哪些,海口网是哪家的?
制作旅游网站html,怎样注册旅游网站?
上一篇:算法竞赛(二)
下一篇:虚拟机磁盘使用查看工具
上一篇:算法竞赛(二)
下一篇:虚拟机磁盘使用查看工具

