irpas技术客

Android修行手册 - RatingBar全解_芝麻粒儿_android ratingbar 属性

irpas 7421

往期文章分享 点击跳转=>《导航贴》- Unity手册,系统实战学习点击跳转=>《导航贴》- Android手册,重温移动开发

本文约4.3千字,新手阅读需要7分钟,复习需要2分钟 【收藏随时查阅不再迷路】

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!! 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) 有什么需要欢迎私我,交流群让学习不再孤单。

👉前提

这是小空坚持写的Android新手向系列,欢迎品尝。

大佬(√)

新手(√√√)

👉实践过程 😜初识

RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。

通常应用场景是在用户评价那,如淘宝评价,打车订餐评价等等。

使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

😜基本属性

【android:isIndicatorRatingBar】是否为指示器,为true时,用户将无法交互操作,默认为false。

【android:numStars】显示的星型数量,必须是一个整形值,像“50”,虽然可以设置很大,但一般都是5-10个星星即可。

【android:rating】设置默认的评分。

【android:stepSize】评分每次增加的值。建议大于0小于等于1之间最合适。

其中内置了三个样式:

style=“?attr/ratingBarStyle”:默认样式style=“?android:attr/ratingBarStyleSmall”:小样式style=“?android:attr/ratingBarStyleIndicator”:指示器样式

但是使用起来感觉不好看,如下示例:

<RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RatingBar style="?android:attr/ratingBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:rating="4" android:stepSize="1" /> <RatingBar style="?android:attr/ratingBarStyleIndicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:rating="3" android:stepSize="1" /> <androidx.appcompat.widget.AppCompatRatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> 😜点击事件 RatingBar ratingBar = findViewById(R.id.rating); ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Log.e("TAG", "onRatingChanged: 当前点击的评分:" + rating); } }); 😜自定义样式 <RatingBar android:layout_width="wrap_content" android:progressDrawable="@drawable/ratingbar_bg" android:layout_height="wrap_content" />

ratingbar_bg.xml

如上我使用的是三个图片。【@android:id/background】属性为默认的图,【@android:id/progress】为选中后的图,【@android:id/secondaryProgress】为选中了一半的图。

但这时候又出现问题了,如果只修改宽高属性【layout_width】和【layout_height】为某个固定值,你会发现评分组件效果展示又不对了,总是填充满整个大小。

宽高属性要一直是【wrap_content】

但这还没完,在不同的分辨率上可能出现高度的bug:drawable图片被垂直拉伸

所以我们按照上面再改改:

<RatingBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/RatingBar_CustomDrawable" /> <style name="RatingBar_CustomDrawable" parent="@android:style/Widget.Holo.RatingBar.Indicator"> <item name="android:progressDrawable">@drawable/ratingbar_bg</item> <item name="android:minHeight">50dp</item> <item name="android:maxHeight">50dp</item> </style>

固定死高度即可。

👉其他

📢作者:小空和小芝中的小空 📢转载说明-务必注明来源:https://zhima.blog.csdn.net/ 📢这位道友请留步??,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功??,我分文不取,若不成功??,也好回来找我。

温馨提示:点击下方卡片获取更多意想不到的资源。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #ratingbar #属性