Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码

作者:chenhongyong 时间:2022-04-26 20:29:21 

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码


<SeekBar
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar"
        android:min="0"
        android:max="100"
        android:progress="50" />  <!--滑块默认位置-->

也可以使用自定义的滑块:

Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码


<SeekBar
    android:layout_width="300dp"
    android:layout_height="100dp"
    android:id="@+id/seekBar"
    android:thumb="@drawable/a"  <!--使用自定义的图片作为滑块-->
    android:min="0"
    android:max="100"
    android:progress="50" />

说明:

并不会自动显示对应的刻度值。

滑块可以滑动,但没有事件响应。需要我们在.java文件中添加事件监听:


SeekBar mySeekBar=findViewById(R.id.seekBar);
    mySeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      /*
      三个形参:
      SeekBar seekBar  触发此事件/监听的Seekbar
      int progress  当前刻度值。
      boolean fromUser  是否为用户拖动产生的响应,这个不常用
      虽然setText(int x)可以设置int型的值,但这个int指的是 R.string.app_name 这样的常量值,不是整型数字。不能setText(progress)这样用,要先转换为String。
       */
      //滑动滑块时触发
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        //判断改变的是否是指定的滑动条。预防当前Activity对应的xml布局中有多个滑动条,如果只有一个滑动条,则不必判断
       if (seekBar.getId()==R.id.seekBar){
       }
      }
      //滑动开始时触发
      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
        if (seekBar.getId()==R.id.seekBar){
        }
      }
      //滑动停止时触发
      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
        if (seekBar.getId()==R.id.seekBar){
        }
      }
    });
  }

滑动滑块一次触发的事件:

最先开始时触发   onStartTrackingTouch()   ,滑动过程中一直触发   onProgressChanged(),最后停止时触发   onStopTrackingTouch()。

就是说滑动过程中会不停地触发  onProgressChanged()  。

2、星级评分控件

Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码


<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

总共默认5颗星,初始默认选择0颗星,默认可修改,默认步长为0.5,即可以点亮半颗星。也可手动设置:


<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ratingBar"
    android:isIndicator="true"  <!--是否可修改,true是不可修改,false是可修改,默认为fasle-->
    android:numStars="7"  <!--总星数-->
    android:rating="5"  <!--初始默认星数-->
    android:stepSize="1" />  <!--步长-->

有时候只是向用户展示评分,并不需要用户评分,比如排行旁的xx指数,这时就需要设置   android:isIndicator="true"    不可修改。

默认为false,可修改。

在.java文件中获取已点亮的星数:


RatingBar ratingBar=findViewById(R.id.ratingBar);
    //获取已点的星数,因为步长可以为小数,所以获取到的是float
    float rates=ratingBar.getRating();

在Android中,几乎所有控件都提供了setXxx()、getXxx()方法供我们在.java文件中操作控件的属性。

总结

以上所述是小编给大家介绍的Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://www.cnblogs.com/chy18883701161/archive/2019/05/17/10883908.html

标签:android,拖动条,滑动条,星级评分
0
投稿

猜你喜欢

  • 详解Java程序启动时-D指定参数是什么

    2021-10-22 07:35:34
  • idea2019导入maven项目中的某些问题及解决方法

    2022-10-13 12:30:53
  • 图文教程教你IDEA中的Spring环境搭建+简单入门

    2022-04-13 23:14:48
  • Java压缩解压zip技术_动力节点Java学院整理

    2022-08-29 22:50:42
  • Android滑动拼图验证码控件使用方法详解

    2021-10-03 02:56:06
  • springboot2.X整合prometheus监控的实例讲解

    2021-07-04 13:49:59
  • 浅谈virtual、abstract方法和静态方法、静态变量理解

    2022-08-29 02:29:14
  • Spring整合Dubbo框架过程及原理解析

    2022-01-31 01:49:16
  • 关于C#继承的简单应用代码分析

    2021-10-28 13:11:31
  • SpringMVC使用RESTful接口案例详解

    2022-08-08 23:41:52
  • Docker 存储驱动详细介绍

    2023-12-21 03:18:34
  • Android编程实现添加低电流提醒功能的方法

    2023-03-16 19:31:29
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法

    2021-07-07 22:59:06
  • MAC上IntelliJ IDEA的svn无法保存密码解决方案

    2022-11-10 13:54:12
  • Spring boot配置文件加解密详解

    2023-11-12 00:17:29
  • Mybatis中的resultType和resultMap查询操作实例详解

    2022-02-24 17:05:42
  • IDEA配置JRebel实现热部署的方法

    2022-08-28 20:53:00
  • Java 继承与多态的深入理解

    2023-10-05 04:25:41
  • Java数组索引异常产生及解决方案

    2023-11-05 16:52:27
  • Java 注解学习笔记

    2022-12-25 02:40:54
  • asp之家 软件编程 m.aspxhome.com