IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android中星星评分控件SimpleRatingBar的使用 -> 正文阅读

[移动开发]Android中星星评分控件SimpleRatingBar的使用

android自带的RatingBar控件在设置大小上是很难控制的【RatingBar控件的介绍】 下面的话就来说说如何使用SimpleRatingBar开源库去实现星级效果【GitHub查看】

一.SimpleRatingBar的属性和方法

描述属性/方法
设置显示总星数app:srb_numberOfStars/setNumberOfStars(int)
设置选中星数app:srb_rating / 设置评级setRating(float)
设置步长app:srb_stepSize/ setStepSize(float)
设置星星大小app:srb_starSize/ setStarSize(float)
设置最大星号app:srb_maxStarSize/ setMaxStarSize(float)
设置边框宽度app:srb_starsSeparation/ setStarsSeparation(float)
设置边框宽度app:srb_starBorderWidth/ setStarBorderWidth(float)
设置星角半径app:srb_starCornerRadius/ setStarCornerRadius(float)
设置正常状态下的星形边框颜色app:srb_borderColor/ setBorderColor(@ColorInt int)
用正常状态设置星星填充颜色用app:srb_fillColor/ setFillColor(@ColorInt int)
用正常状态设置星星背景颜色app:srb_starBackgroundColor/setStarBackgroundColor(@ColorInt int)
设置正常状态下额定条的背景颜色app:srb_backgroundColor/ setBackgroundColor(@ColorInt int)
在按下状态设置星级边框颜色app:srb_pressedBorderColor/setPressedBorderColor(@ColorInt int)
设置星形填充颜色处于按下状态app:srb_pressedFillColor/setPressedFillColor(@ColorInt int)
在压制状态下设置星星背景颜色app:srb_pressedStarBackgroundColor/setPressedStarBackgroundColor(@ColorInt int)
用压力状态设置额定条的背景颜色app:srb_pressedBackgroundColor/setPressedBackgroundColor(@ColorInt int)
启用/禁用用户的交互app:srb_isIndicator/setIsIndicator(boolean)
启用/禁用星形边框app:srb_drawBorderEnabled/ setDrawBorderEnabled(boolean)
设置填充方向(左或右)app:srb_gravity/ setGravity(Gravity)
得到已选中星星的个数getRating()
得到一共有多少颗星星getNumberOfStars()

二.使用步骤

1.添加依赖
implementation 'com.iarcuschin:simpleratingbar:0.1.5'
2.示例
          <RelativeLayout
                android:id="@+id/star_describe"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/score_title1"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:text="描述相符"
                    android:textSize="13sp"
                    android:textColor="@color/theme_defaultText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <TextView
                    android:id="@+id/describe_tip"
                    android:textSize="12sp"
                    android:textColor="@color/theme_textColor"
                    android:layout_marginLeft="5dp"
                    android:layout_toRightOf="@+id/score_title1"
                    android:layout_centerVertical="true"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <com.iarcuschin.simpleratingbar.SimpleRatingBar
                    android:id="@+id/describe_score"
                    android:layout_alignParentRight="true"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:srb_starSize="28dp"  //星星大小
                    app:srb_numberOfStars="5"  //显示星星个数
                    app:srb_stepSize="1"    //步长
                    app:srb_drawBorderEnabled="false"
                    app:srb_starBackgroundColor="@color/disabled_textColor"
                    app:srb_fillColor="@color/goCart_btn" />
            </RelativeLayout>

SimpleRatingBar自带点击星星变亮和滑动星星变亮的事件,不需要我们另外写代码,如果要监听选中星星个数的改变,可以添加setOnRatingBarChangeListener监听,如下:

   SimpleRatingBar describe_score = findViewById(R.id.describe_score);
   describe_score.setOnRatingBarChangeListener(new SimpleRatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(SimpleRatingBar simpleRatingBar, float rating, boolean fromUser) {
             //这里是防止星星的个数变成零个,最少为一个
                if(rating==0){
                    describe_score.setRating(1);
                    rating=1;
                }
                score1 = String.valueOf(rating);
                scoreState1 = fun_getScoreState(score1);
                describe_tip.setText(scoreState1);
            }
        });
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:19:29  更:2021-08-03 11:20:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 5:27:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码