Android 中文 API (40) —— RatingBar

前言

本章内容是 android.widget.RatingBar,译为"评分条",版本为Android 2.2 r1,翻译来自"madgoat"和"wallace2010",欢迎大家访问他们的博客:http://madgoat.cn/、http://blog.csdn.net/springiscoming2008,再次感谢"madgoat"和"wallace2010" !期待你加入Android中文翻译组,联系我over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://www.cnblogs.com/over140/

正文

  一、结构

    public class RatingBar extends AbsSeekBar

    java.lang.Object

    android.view.View

    android.widget.ProgressBar

                   android.widget.AbsSeekBar

  android.widget.RatingBar

  二、概述

    

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

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

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

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

  参见Form Stuff tutorial.

  三、嵌套类

  接口: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)

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

  参数

  isIndicator       Bool值,是否是一个指示器

  public synchronized void setMax (int max)

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

  参数

  max         评分条最大范围。

  public void setNumStars (int numStars)

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

wrap content

  参数

  numStars         星型的数量

  public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

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

  参数

  listener  监听器

  public void setRating (float rating)

  设置分数(星型的数量)

  参数

  rating      设置的分数

  public void setStepSize (float stepSize)

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

  参数

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

  六、受保护方法

  protected synchronized void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  权衡 view 和 content 来决定它的宽度和高度的整齐。它被measure(int, int) 调用 并且应该被子类所覆盖,以便提供准确高效的布局测量。

  规定: 当覆盖这个方法的时候,你必须调用 setMeasuredDimension(int, int)以便存储精确的视图的宽和高。如果不这样做的话将触发llegalStateException异常,被函数 measure(int, int)抛出。调用父类 onMeasure(int, int)是合理的。

  尺寸的基本类的实现默认是背景大小,除非通过MeasureSpec允许大的尺寸。子类应该覆盖 onMeasure(int, int) 以便提供更好的布局大小。

如果这个方法被覆盖,子类应该负责确保标准的宽和高至少是视图的最小宽度和高度的值(分别为getSuggestedMinimumHeight() 和 getSuggestedMinimumWidth()两方法)。

    参数

    widthMeasureSpec     受主窗口支配的水平空间要求。这个需求通过 View.MeasureSpec.进行编码。

      heightMeasureSpec   受主窗口支配的垂直空间要求。这个需求通过 View.MeasureSpec.进行编码。

  七、补充

    文章链接

Android 控件之RatingBar评分条

Android更换RatingBar图片

[Android学习指南]RatingBar 评分条

    示例代码(代码转载自Android手机开发者论坛)

      Java文件

public class AndroidRatingBar extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

final RatingBar ratingBar_Small = (RatingBar)findViewById(R.id.ratingbar_Small);
       final RatingBar ratingBar_Indicator = (RatingBar)findViewById(R.id.ratingbar_Indicator);
       final RatingBar ratingBar_default = (RatingBar)findViewById(R.id.ratingbar_default);

ratingBar_default.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){

public void onRatingChanged(RatingBar ratingBar, float rating,
     boolean fromUser) {
    ratingBar_Small.setRating(rating);
    ratingBar_Indicator.setRating(rating);
    Toast.makeText(AndroidRatingBar.this, "rating:"+String.valueOf(rating),
      Toast.LENGTH_LONG).show();
   }});
   }
}

      XML文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="@string/hello"
   />
<RatingBar
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="?android:attr/ratingBarStyleIndicator"
   android:id="@+id/ratingbar_Indicator"
   />
<RatingBar
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="?android:attr/ratingBarStyleSmall"
   android:id="@+id/ratingbar_Small"
   android:numStars="20"
   />
<RatingBar
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="?android:attr/ratingBarStyle"
   android:id="@+id/ratingbar_default"
   />
</LinearLayout>

结束

  本文为"madgoat"和"wallace2010"联合署名,原因是翻译重了,不过两个翻译得都很好,这样翻译重的事件也将随着管理的完善得意解决,感谢两位的相互理解,感谢大家的支持!

android中的评分条(ratingBar)相关推荐

  1. android中星级评分控件RatingBar的使用

    一.简单概述 1.相关属性: > android:isIndicator:是否用作指示,用户无法更改,默认false > android:numStars:显示多少个星星,必须为整数 an ...

  2. Android中下载进度条格式,Android开发如何实现文件下载进度条

    释放双眼,带上耳机,听听看~! 今天和小编狗在这里学习下载进度的实现吧,这段代码是网上找的,自己做了些小改,通过模拟器测试.文件下载进度条控制(就是为了高清壁纸加个进度条),自己研究了好久,但是进度条 ...

  3. android 中禁止评论星级RatingBar 选择或改变

    我们在用RatingBar时这个控件时,一般只需要让它显示,而不让它选择或改变.我们只需要添加这样一个属性即可. android:isIndicator="true" 设置星级数量 ...

  4. [Android] 星级评分条组件RatingBar

    星级评分条组件(RatingBar)一般是用来做评分,用星形来显示等级评定,它是ProgressBar的子类,继承了ProgressBar的所有属性和方法. 1.RatingBar属性 android ...

  5. iOS开发篇(二)自定义评分星级条RatingBar

    在我们开发电商类的项目时,可能会遇到用户评价"打星"这样的需求,iOS上没有这个控件,因此这里需要我们自定义该控件 第一步: 写一个继承自UIView的RatingBar子控件 第 ...

  6. Android中的13种Drawable小结

    本节引言: 从本节开始我们来学习Android中绘图与动画中的一些基础知识,为我们进阶部分的自定义打下基础!而第一节我们来扣下Android中的Drawable!Android中给我们提供了多达13种 ...

  7. Android中Seekbar简单用法

    Seekbar是Android中的拖动条.它是继承ProgressBar编写的.我们在音频播放,视频播放的时候往往需要用到这个控价.这里我们简单介绍一下这个控件的使用.废话不多说,直接上代码. act ...

  8. Android 基础知识4-3.9 RatingBar(星级评分条)详解

    一.引言 Android开发中,时不时的就有要实现星星的评分效果,比如某宝,某团,相信大家也都见过,当然了我们可以自己去画,也可以用美工给切的图去实现,其实在Android原生的控件中就可以来实现这样 ...

  9. UI组件之ProgressBar及其子类(二)SeekBar拖动条和RatingBar星级评分条的使用

    拖动条采用拖动滑块的位置来表示数值 SeekBar的常用xml属性值: 重要的android:thumb制定一个Drawable对象,改变滑块外观 通过滑块来改变图片的透明度: main.xml &l ...

最新文章

  1. win mysql 最大连接_常用的三种修改mysql最大连接数的方法
  2. mysql动态规划_动态规划《开篇》
  3. kaggle House_Price_XGBoost
  4. Google App Engine平台下JDOQL查询报异常的问题解决方案
  5. python学习-数据类型(布尔、空值)
  6. python读取mysql以html形式输出_python实现处理mysql结果输出方式
  7. 许海燕(1987-),女,宁波市智慧城市规划标准发展研究院研究人员.
  8. 服务器消除报警信息,巧妙设置让故障服务器自动报警的小技巧
  9. 设置Myeclipse中的代码格式化、及保存时自动格式化
  10. Python中列表的增、删、改、查、排序
  11. 这可能是今年最值得推荐的数据分析工具!
  12. @bean 什么时候执行_离婚冷静期什么时候开始执行?
  13. 关于JavaScript中变量的相互引用
  14. java提供两种处理异常的机制_Java的异常机制分析及处理办法
  15. 【F1C100S】编译启动所需的uboot,kernel,rootfs
  16. Sentinel-2数据下载方法
  17. 导出excel文件对空值用“--“占位处理
  18. CSS minification error
  19. 入职阿里巴巴,阿里P7高级架构师需要哪些技术栈?
  20. python 柱状图如何添加数字标签_matplotlib可视化之如何给图形添加数据标签?

热门文章

  1. 平安云Redis实践降本增效的背后,竟然是它在支招?
  2. CentOS7安装可移植Prometheus+grafana--pushgateway及自定义监控
  3. Pagerduty - prometheus - grafana测试告警的使用方法
  4. 【小白从小学Python、C、Java】【计算机等级考试二级-必会题】【ASCII码与字符相互转化】
  5. Git出现 FETCH_HEAD fatal: refusing to merge unrelated histories解决方法
  6. V8 堆外内存 ArrayBuffer 垃圾回收的实现
  7. R语言数据分析-练习题【学习总结20201030】[1-20]
  8. 快速将argparse的参数倒入到类中的__dict__
  9. python_torch_加载数据集_构建模型_构建训练循环_保存和调用训练好的模型
  10. RationalDMIS 2020 构建坐标系图形区预览自动显示CRD