Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码
作者:chenhongyong 发布时间:2022-04-26 20:29:21
标签:android,拖动条,滑动条,星级评分
ProgressBar有2个子控件:
SeekBar 拖动条控件
RatingBar 星级评分控件
1、拖动条控件
<SeekBar
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/seekBar"
android:min="0"
android:max="100"
android:progress="50" /> <!--滑块默认位置-->
也可以使用自定义的滑块:
<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、星级评分控件
<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


猜你喜欢
- 在很多.net开发体系中开发者在面对调度作业需求的时候一般会选择三方开源成熟的作业调度框架来满足业务需求,比如Hangfire、Quartz
- 本文实例为大家分享了C#线程中弹窗的制作代码,供大家参考,具体内容如下首先建立一个ShowFrom窗体,窗体中放入两个按钮分别为确定和取消分
- Mybatis配置返回为修改影响条数mybatis执行update()方法默认返回为匹配的更新记录条数,现在需要将update()方法修改为
- 用java实现循环队列的方法:1、添加一个属性size用来记录眼下的元素个数。目的是当head=rear的时候。通过size=0还是size
- Hibernate中有HQL查询语法。但我们用得比较熟的还是数SQL语句,那么应该怎么来让Hibernate支持SQL呢?这个不用我们去考虑
- 本文实例讲述了Android获取SD卡路径及SDCard内存的方法。分享给大家供大家参考。具体分析如下:昨天在研究拍照后突破的存储路径的问题
- 使用Integer类型查询出现的问题mapper.xml :<select id="count" paramete
- 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Di
- 前言一般情况下,当我们使用 SpringDataElasticsearch 去操作 ES 时,索引名
- 现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了。三星今年推出的最新旗舰机Galaxy S9已经搭载了Android
- 异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步如何开始,好理解,现在
- 前言最近因为项目组需求,特研究了一下“回到顶部”效果,即:页面里有scrollview,内容很多,当滑动到页面下面或者更深时,需要回到顶部,
- 在android平台上的app,在主页面时经常会遇到“再按一次退出app”的功能,避免只按一下返回键就退出app提升体验优化。1、这个功能需
- 本文实例总结了Android开发中的简单设置技巧。分享给大家供大家参考,具体如下:1开机图片:android-logo-mask.pngan
- 本文实例讲述了C#使用smtp发送带附件的邮件实现方法。可直接将string类型结果保存为附件。分享给大家供大家参考。具体分析如下:该方式直
- 本文实例讲述了C#利用Random得随机数求均值、方差、正态分布的方法。分享给大家供大家参考。具体如下:最近在做中小学试卷分析系统,其中数据
- 本文实例讲述了Java线程之守护线程(Daemon)用法。分享给大家供大家参考。具体如下:守护线程(Daemon)Java有两种Thread
- 一、WebRequestMethods.Ftp类:表示可与 FTP 请求一起使用的 FTP 协议方法的类型。AppendFile:表示要用于
- 1、spring-cloud-starter-alibaba-nacos-discovery 这里依赖报红,无法引入,或显示无法找到,更换版
- 前言在我们用户登录的时候,为了安全性考虑,会增加验证码的功能,这里采用的是google的kaptcha;spirngboot是轻便,独立,使