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 拖动条/滑动条控件、星级评分控件的更多相关文章
- UWP开发---DIY星级评分控件
一,需求来源 在开发韩剧TV UWP过程中,遇到了星级评分的控件问题,在安卓和html中很容易用现有的轮子实现星级评分,搜索了一下目前UWP还未有相关文章,在WPF的一篇文章中使用Photo shop ...
- Android自定义Seekbar滑动条,Pop提示跟随滑动按钮一起滑动
由于项目需要做出此效果,自定义写了一个. 效果图 思路: 原始的seekbar只有滑动条并没有下方的提示文字,所以我们必须要继承Seekbar重写这个控件. 代码: 在values文件夹下新建attr ...
- 【Android】5.8 滑动条(SeekBar)
分类:C#.Android.VS2015: 创建日期:2016-02-07 一.简介 滑动条也叫拖动条(用户可拖动改变滑动条的值),比如可让用户调节音量大小.调节屏幕亮度.调节歌曲或视频当前播放的位置 ...
- Android星星评分控件RatingBar的使用
在Android的开发中,有一个叫做评分控件RatingBar,我们可以使用该控件做等级划分.评分等作用,星星形状显示,也可以半星级别,我们来看一下评分控件如何使用. 布局文件中定义控件以及属性,这里 ...
- OpenCV——图像的载入、显示、输出到文件和滑动条、鼠标操作
图像的载入.显示.输出到文件和滑动条 滑动条 示例: 鼠标操作
- iOS- 非整星的评分控件(支持小数)
概述 订单评论里实现星级评分控件: 简单整星评价与非整星的精评价. 详细 代码下载:http://www.demodashi.com/demo/10711.html 现在很多应用都有评分功能. 有了订 ...
- Android View 之进度条+拖动条+星级评论条....
PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条... 进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此 ...
- VC++ 中滑动条(slider控件)使用 [转+补充]
滑动控件slider是Windows中最常用的控件之一.一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值.通常,在滑动控件附近一定有标签控件或编辑框控 ...
- Android GridView 滑动条设置一直显示状态
模拟GridView控件: <GridView android:id="@+id/picture_grid" android:layout_width="match ...
随机推荐
- 1. Linux基本命令
1. Linux 基本操作 1 基本命令 序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 Cd [ ...
- Jmeter设置默认中文启动
安装好jmeter,启动的页面是全英文,对于不熟悉jmeter的人来说,理解起来还是很困难的.如何设置成中文页面呢? 方法一:打开jmeter后,设置Options—choose language—C ...
- k8s中的client-go编译成功
要分版本的,好像1.4跟12差别好大. 1.4中用的模块管理还是vendor,12就换成mod了. 这个要记住差异. 一,从github上下载client-go的1.4版本 https://githu ...
- 爬虫scrapy模块
首先下载scrapy模块 这里有惊喜 https://www.cnblogs.com/bobo-zhang/p/10068997.html 创建一个scrapy文件 首先在终端找到一个文件夹 输入 s ...
- SpringCloud学习笔记(十、SpringCloud Sleuth)
目录: 什么是SpringCloud Sleuth 为什么使用SpringCloud Sleuth 如何使用SpringCloud Sleuth 什么是SpringCloud Sleuth: Spri ...
- Re-androideasy
题目地址 https://dn.jarvisoj.com/challengefiles/androideasy.apk.17e528e9498d4ae25dc82ad43730a03d 先看看功能 然 ...
- python如何实现元素等待
一.为什么要元素等待? 在UI自动化过程中,元素的出现受网络环境.设备性能等多种元素影响.因此,元素加载和脚本运行到该元素的时间不一致,会报错:元素无法定位. 简单举下例子:实际UI自动化测试中,点击 ...
- Leetcode146-lru-cache
Leetcode146-lru-cache int capacity; int size; Map<Integer, ListNode> map = new HashMap<Inte ...
- 【解决错误】Non-reversible reg-exp portion: '(?i'
在将Django升级到2.1后,运行 Django 自带后台后,或 使用 redirect 方法,就一直报错:Non-reversible reg-exp portion: '(?i'. 错误一 Dj ...
- HTTP和RPC是现代微服务架构,HTTP和RPC是现代微服务架构
.NET Core使用gRPC打造服务间通信基础设施 一.什么是RPC rpc(远程过程调用)是一个古老而新颖的名词,他几乎与http协议同时或更早诞生,也是互联网数据传输过程中非常重要的传输机制 ...