首页 > 其他分享 >android 评分条 RatingBar 使用及自定义

android 评分条 RatingBar 使用及自定义

时间:2023-04-03 23:10:52浏览次数:36  
标签:自定义 评分 void 星型 设置 RatingBar android public


一、先上效果图片:

   第一个是自定义;

   第二个是原生的:

 

android 评分条 RatingBar 使用及自定义_自定义

二、atingBar

RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。

只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。

次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。

三、嵌套类


接口:RatingBar.OnRatingBarChangeListener

一个回调函数,当星级进度改变时修改客户端的星级。

四、XML属性


属性名称

描述

Android:isIndicator

RatingBar是否是一个指示器(用户无法进行更改)

android:numStars

显示的星型数量,必须是一个整形值,像“100”。

android:rating

默认的评分,必须是浮点类型,像“1.2”。

android:stepSize

评分的步长,必须是浮点类型,像“1.2”。

 

  五、公共方法

 

public int getNumStars ()

返回显示的星型数量

返回值

                  显示的星型数量

 

public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

监听器(可能为空)监听评分改变事件

 

public float getRating ()

获取当前的评分(填充的星型的数量)

返回值

当前的评分

 

public float getStepSize ()

获取评分条的步长

返回值

步长

 

public boolean isIndicator ()

返回值

                判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)

 

public void setIsIndicator (boolean isIndicator)

设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)

参数

      Bool值,是否是一个指示器

 

public synchronized void setMax (int max)

设置评分等级的范围,从0到max

参数

        评分条最大范围。

 

public void setNumStars (int numStars)

设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为

wrap content

参数

        星型的数量

 

public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

设置当评分等级发生改变时回调的监听器

参数

监听器

 

public void setRating (float rating)

设置分数(星型的数量)

参数

     设置的分数

 

public void setStepSize (float stepSize)

设置当前评分条的步长(step size)

参数

评分条的步进。例如:如果想要半个星星,它的值为0.5。

四、XML属性


属性名称

描述

Android:isIndicator

RatingBar是否是一个指示器(用户无法进行更改)

android:numStars

显示的星型数量,必须是一个整形值,像“100”。

android:rating

默认的评分,必须是浮点类型,像“1.2”。

android:stepSize

评分的步长,必须是浮点类型,像“1.2”。

 

  五、公共方法

 

public int getNumStars ()

返回显示的星型数量

返回值

                  显示的星型数量

 

public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

监听器(可能为空)监听评分改变事件

 

public float getRating ()

获取当前的评分(填充的星型的数量)

返回值

当前的评分

 

public float getStepSize ()

获取评分条的步长

返回值

步长

 

public boolean isIndicator ()

返回值

                判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)

 

public void setIsIndicator (boolean isIndicator)

设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)

参数

      Bool值,是否是一个指示器

 

public synchronized void setMax (int max)

设置评分等级的范围,从0到max

参数

        评分条最大范围。

 

public void setNumStars (int numStars)

设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为

wrap content

参数

        星型的数量

 

public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

设置当评分等级发生改变时回调的监听器

参数

监听器

 

public void setRating (float rating)

设置分数(星型的数量)

参数

     设置的分数

 

public void setStepSize (float stepSize)

设置当前评分条的步长(step size)

参数

评分条的步进。例如:如果想要半个星星,它的值为0.5。

六、android评分条RatingBar自定义设置

sdk23 RatingBar为评分条控件,默认效果为若干个灰色的星星,如果想将其换成其他自定义图片就要自定义它的style。首先是布局文件:

<RatingBar
        android:id="@+id/ratingone"
        android:numStars="5"  设置星的个数,注意下边的宽度要设置为wrap_content
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:rating="3"   设置默认选中星的个数
        android:stepSize="0.5"  设置评分的间隔,每次增加或者减少多少
        android:isIndicator="false"/> 设置 不允许用户进行评分操作,flase 表示允许


 其中android:numStars="5"设置显示的星星数量为5; android:rating="5"设置选中的数量为5,也就是全部选中

android:isIndicator="true"设置评分条只显示结果无法通过点击改变选中状态。

然后在res/values目录下建立styles.xml文件 代码:

<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'宋体';font-size:12.0pt;"><span style="color:#e8bf6a;"><style </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"myRatingBarStyle" </span><span style="color:#bababa;">parent=</span><span style="color:#6a8759;">"@android:style/Widget.RatingBar"</span><span style="color:#e8bf6a;">>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:progressDrawable"</span><span style="color:#e8bf6a;">></span>@drawable/my_rating_bar<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:minHeight"</span><span style="color:#e8bf6a;">></span>16dp<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:maxHeight"</span><span style="color:#e8bf6a;">></span>16dp<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;"></style></span>



android:progressDrawable为评分条图案。接下来在res/drawable目录下建立my_rating_bar.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="@drawable/star1"></item>
    <item android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/star1"></item>
    <item android:id="@android:id/progress"
        android:drawable="@drawable/star2"></item>
</layer-list>


<item android:id="@+android:id/progress" android:drawable="@drawable/rating_show" />为设置评分图案为  rating_show.png,也就是选中时的图案;
 <item android:id="@+android:id/background" android:drawable="@drawable/rating" />  为设置背景图案为 rating.png,也就是为选中时的图案。



标签:自定义,评分,void,星型,设置,RatingBar,android,public
From: https://blog.51cto.com/u_12389088/6167638

相关文章

  • android 调用地图
    有时候我们需要调用地图显示一下位置,这时候可能还需要导航,导航做起来有点麻烦,如果调用第三方的是不是很简单,本文就是写这个来的;第一种方式:androidIntent调用地图应用客户端调用百度地图:百度地图包:com.baidu.BaiduMaptry{intent=Intent.getIntent("intent://m......
  • <Android> ListView 列表控件的使用-李国庆-专题视频课程
    ListView列表控件的使用—15573人已学习课程介绍        1,ListView介绍;2,原理讲解;3,简单实现;4,ListView扩展;课程收益    通过学习本课程,具有一定的Android开发技能和知识,熟练掌握这一专题中集成组件与布局属性、实现listview基本用法,及简单扩展。讲师介绍    ......
  • android下拉菜单 spinner 学习
    首先看一下继承关系:publicclassSpinnerextendsAbsSpinnerimplementsDialogInterface.OnClickListenerClassOverview视图在同一时间只能显示一个子项,用户通过下拉的方式可以选择其中的一种项。该子项在Spinner来自来Adpater视图适配器。首先看一下效果图:Spinner控件的使......
  • android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
    在开发中遇到ScrollView嵌套ListView的问题,最开始发出不能全屏,效果是这样的;但我想要的效果是这样的:下面看一下布局文件:<?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_p......
  • Android 在程序中动态添加 View 布局或控件
    有时我们需要在程序中动态添加布局或控件等,下面用程序来展示一下相应的方法:1、addView添加View到布局容器2、removeView在布局容器中删掉已有的View3、LayoutParams 设置View的大小位置下面来看一个demo;publicclassMainActivityextendsActivity{ @Override protectedvo......
  • Android ImageView 详述
    结构继承关系publicclassView.OnClickListnerextendsView java.lang.Objectandroid.view.Viewandroid.widget.ImageView类概述显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各......
  • Android中常用的5大布局详述
    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。       所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类。其它的一些布局都扩展自这5个......
  • Halo自定义部分扩展
    简介Halo是一款现代化的开源博客/CMS系统,前端由Vue,后端java开发的。我选择的原因是因为是java开发的,所以方便我自定义的扩展。MinIO扩展在我们写博客的时候经常会用到图片,Halo支持多种文件存储方式。这里我选择了MinIO,但是在使用的过程中发现了一个小的问题,它上传的文件是按照......
  • Android与STM32通信中巧妙解决中文乱码问题
    前言网上一大堆都是要多种格式相互转换,并且要很大的字库文件,对于小应用工程,小容量的STM32芯片,额外多出这些开销会感到蛮不舒服的,而且绝大部分的乱码问题时发生在STM32这边,所以本文是从Android端解决编码格式转化的问题,STM32那边稍做处理即可,我做的转换是从UTF-8转到GBK解决方案......
  • 第六篇:自定义集合类型和结构体取代类
    第六篇:自定义集合类型和结构体取代类目录第六篇:自定义集合类型和结构体取代类一、自定义集合类型二、结构体取代类1make和new的区别2结构体取代类一、自定义集合类型集合是一个重要的数据结构,其中,集合中的元素不能重复;集合中的元素无序排列,由于go中没有集合元素,我们可以通过m......