无论游戏,应用,网站,都少不了评分控件。在Android SDK 中提供了 RatingBar控件来实现相应的工作。

标签有几个常用评分相关属性

android:numStars,指定评分五角星数。
android:rating,指定当前分数
android:stepSize, 指定分数增量

还有3种 常用的style属性

默认style 就是ratingBarStyle
style ratingBarStyleIndicator 不可交互,中等大小
style ratingBarStyleSmall 不可交互,小星星

废话不多说,直接上代码

activity_main.xml布局文件

<?xml version="1.0" encoding="utf-8"?>            

这里运行我们就可以清楚的看到RatingBar的各个属性了,但是用于交互的RatingBar(前两个),和用于展示无法交互的RatingBar(后两个)又该怎么使用呢?

在这里,我们实现一个点击上面的交互RatingBar1,获取评分,并更新到用于展示的RatingBarOne
点击上面的交互RatingBar2,获取评分,并更新到用于展示的RatingBarTwo。

关键方法 就是设置监听setOnRatingBarChangeListener 和 给评分组件设置评分方法setRating(float rating)

import android.app.Activity;import android.os.Bundle;import android.widget.RatingBar;import android.widget.RatingBar.OnRatingBarChangeListener;public class MainActivity extends Activity { // 可交互的两个 ratingBar private RatingBar ratingBar1 = null; private RatingBar ratingBar2 = null; // 不可交互的两个 ratingBar private RatingBar ratingBarOne = null; private RatingBar ratingBarTwo = null; protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  // 设置布局页面  setContentView(R.layout.activity_main);  // 初始化函数  initView(); } // 初始化函数 public void initView() {  // 通过findViewById分别获得控件  ratingBar1 = (RatingBar) findViewById(R.id.ratingBar1);  ratingBar2 = (RatingBar) findViewById(R.id.ratingBar2);  ratingBarOne = (RatingBar) findViewById(R.id.ratingBarOne);  ratingBarTwo = (RatingBar) findViewById(R.id.ratingBarTwo);  // 为ratingBar1添加 OnRatingBarChangeListener  // 当用户交互改变分值时,触发该事件  ratingBar1.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {     // 该方法可以获取到 3个参数     public void onRatingChanged(RatingBar ratingBar,       float rating, boolean paramBoolean) {      // 第一个参数 当前评分修改的 ratingBar      System.out.println(ratingBar);      // 第二个参数 当前评分分数,范围 0~星星数量      System.out.println(rating);      // 第三个参数 如果评分改变是由用户触摸手势或方向键轨迹球移动触发的,则返回true      System.out.println(paramBoolean);      //将不可交互的展示型ratingBarOne的评分分数通过setRating      //设置成onRatingChanged方法获得的ratingBar1的分值参数rating       ratingBarOne.setRating(rating);     }    });  // 为ratingBar2添加 OnRatingBarChangeListener  // 当用户交互改变分值时,触发该事件  ratingBar2.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {     public void onRatingChanged(RatingBar ratingBar,       float rating, boolean paramBoolean) {      //将不可交互的展示型ratingBarTwo的评分分数通过setRating      //设置成onRatingChanged方法获得的ratingBar2的分值参数rating       ratingBarTwo.setRating(rating);     }    }); }}

当写完Activity中代码运行后,点击操作前两个RatingBar是不是成功实现了更新后两个RatingBar?
System.out.println控制台输出上可以清楚的看到setOnRatingBarChangeListener 的3个参数的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Python技巧匿名函数、回调函数和高阶函数
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android中retrofit网络请求框架使用
  5. Android中图像和图像处理
  6. 安卓入门及界面带参数跳转
  7. Android(安卓)OpenGL 开发
  8. Android(安卓)3.0 r1 API中文文档(105) ―― ViewParent
  9. Android(安卓)SQLite 数据库存储

随机推荐

  1. 2013.12.04 (5)——— android SlidingMenu
  2. Android入门:Button
  3. Android Material Design之FloatingActio
  4. Android AsyncTask 异步任务取消
  5. Android简单的Fragment嵌套Fragment(View
  6. android自绘Widget(2D)之修改存在的WIDGET
  7. android WebView加载URL不显示图片
  8. Android 自定义PopupWindow动画效果
  9. android 使用randerScript实现图片模糊效
  10. [置顶] android 内存泄露那些事情之Handl