服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码

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

2022-10-18 13:17chenhongyong Android

这篇文章主要介绍了Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码,需要的朋友可以参考下

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

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

?
1
2
3
4
5
6
7
<SeekBar
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar"
        android:min="0"
        android:max="100"
        android:progress="50" />  <!--滑块默认位置-->

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

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

?
1
2
3
4
5
6
7
8
<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文件中添加事件监听:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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开发之拖动条/滑动条控件、星级评分控件功能的实例代码

?
1
2
3
4
<RatingBar
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     />

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

?
1
2
3
4
5
6
7
8
<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文件中获取已点亮的星数:

?
1
2
3
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

延伸 · 阅读

精彩推荐
  • AndroidAndroid的日志系统分层与logcat使用

    Android的日志系统分层与logcat使用

    今天小编就为大家分享一篇关于Android的日志系统分层与logcat使用的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    dongyi198810902022-08-11
  • Android轻松实现Android指南针功能

    轻松实现Android指南针功能

    这篇文章主要介绍了轻松实现Android指南针功能的几个关键步骤,想要实现指南针功能的朋友不要错过...

    徐刘根10502021-04-20
  • AndroidAndroid定时开机的流程详解

    Android定时开机的流程详解

    这篇文章给大家分享了Android定时开机及其实现流程,对此知识点有兴趣的朋友,可以学习参考下。...

    u01368601910682022-03-07
  • AndroidAndroid getSystemService用法实例总结

    Android getSystemService用法实例总结

    这篇文章主要介绍了Android getSystemService用法,结合实例形式总结分析了getSystemService获取系统Service的相关使用方法与注意事项,需要的朋友可以参考下...

    nosxcy4412021-05-12
  • AndroidAndroid编程设置全屏的方法实例详解

    Android编程设置全屏的方法实例详解

    这篇文章主要介绍了Android编程设置全屏的方法,结合实例形式较为详细的分析了Android设置全屏的两种常见技巧,非常简单实用,需要的朋友可以参考下...

    sengeiou6522021-04-15
  • Androidandroid耳机左右声道接反具体修正方法

    android耳机左右声道接反具体修正方法

    android 耳机左右声道接反如何修正,具体的修改方法如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助...

    Android开发网9282021-01-30
  • AndroidAndroid编程实现监听EditText变化的方法

    Android编程实现监听EditText变化的方法

    这篇文章主要介绍了Android编程实现监听EditText变化的方法,涉及Android针对EditText的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    jie1991liu11592021-04-13
  • AndroidAndroid自定义控件仿iOS滑块SwitchButton

    Android自定义控件仿iOS滑块SwitchButton

    这篇文章主要为大家详细介绍了Android自定义控件模仿iOS滑块SwitchButton,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    王世晖5472022-09-07