Android RatingBar终极解决方案,大小、颜色、间距、样式随便定义
giswangsj 2020/4/28 23:02:42
用过RatingBar的都知道,这玩意比较坑,不好调整大小、间距、颜色及样式等难以自定义。这里给出一个RatingBar的终极解决方案-AndRatingBar
。
AndRatingBar
开源库,它继承自Android原生的RatingBar
,也继承了RatingBar可拖动的优良传统,通过对内部drawable的重写实现了大小可以根据控件大小而改变,并且可以方便的设置颜色,自定义图标等。
1,先看一下预览效果:





可以看出AndRatingBar
可以设置大小,间距,颜色,图标等样式,并且支持从右往左展示Rating,并且可以在RecyclerView中不会出现异常情况。
2,使用
AndRatingBar
的使用也很简单
首先添加依赖:
allprojects { repositories { maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.github.giswangsj:AndRatingBar:1.0.3' } 复制代码
然后在布局中引用
<per.wsj.library.AndRatingBar android:layout_width="wrap_content" android:layout_height="48dp" app:starDrawable="@drawable/star_blue" app:bgDrawable="@drawable/star_gray" 复制代码
事件监听
ratingBar.setOnRatingChangeListener { ratingBar, rating -> Log.e("ratingBar", "rating:$rating") } 复制代码
3,配置
前面提到过AndRatingBar继承自Android原生RatingBar,因此可以使用原生RatingBar的各种属性,常用如下:
- android:rating="1" 设置Rating
- android:numStars="8" 设置星星的数量
- android:layout_height="36dp" 设置控件的高度
- android:stepSize="0.5" 设置Rating的步长
- android:isIndicator="true" 设置是否是指示器(只能代码设置,不可手动设置)
另外AndRatingBar提供了扩展属性,可以方便的进行样式设置:
- app:starDrawable="" 设置星星的图标
- app:bgDrawable="" 设置背景的图标
- app:starColor="" 设置星星的颜色
- app:subStarColor="" 设置二级颜色
- app:bgColor="" 设置星星背景颜色
- app:keepOriginColor="" 设置是否保持图标原有的颜色
- app:starSpacing="4dp" 调整星星之间的间距
- app:scaleFactor="1.2" 通过缩放比例调整星星之间的间距
- app:right2Left="true" 从右往左展示
仓库地址:github.com/giswangsj/A… 欢迎star

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[Android RatingBar终极解决方案,大小、颜色、间距、样式随便定义]http://www.zyiz.net/tech/detail-131528.html
- 2023-03-06Android病毒分析基础(一)
- 2022-12-27Android源码定制(4)——Xposed源码定制
- 2022-12-27Android源码定制(5)——root指纹定制与抹除
- 2022-12-19Android源码定制(1)——Android6.0的编译流程
- 2022-12-19Android源码定制(2)——Android10.0的编译流程
- 2022-11-05Android-存储基础
- 2022-11-05Android MVVM 数据与 ViewModel 的绑定
- 2022-10-26打包Multiple dex files define Landroid/support/v4问题解决
- 2022-10-20安卓开发sdk android8.1_鸿蒙开发程学习(1)
- 2022-10-17干货|Android系统定制开发基础篇