博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 拖动条/滑动条控件、星级评分控件
阅读量:5170 次
发布时间:2019-06-13

本文共 2174 字,大约阅读时间需要 7 分钟。

 

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

 

 

1、拖动条控件

1 

 

 

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

1  
6 android:min="0"7 android:max="100"8 android:progress="50" />

 

说明:

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

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

 

1 SeekBar mySeekBar=findViewById(R.id.seekBar); 2         mySeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 3             /* 4             三个形参: 5             SeekBar seekBar   触发此事件/监听的Seekbar 6             int progress   当前刻度值。 7             boolean fromUser   是否为用户拖动产生的响应,这个不常用 8             虽然setText(int x)可以设置int型的值,但这个int指的是 R.string.app_name 这样的常量值,不是整型数字。不能setText(progress)这样用,要先转换为String。 9              */10             11             //滑动滑块时触发12             @Override13             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {14                 //判断改变的是否是指定的滑动条。预防当前Activity对应的xml布局中有多个滑动条,如果只有一个滑动条,则不必判断15                if (seekBar.getId()==R.id.seekBar){16 17                }18             }19 20             //滑动开始时触发21             @Override22             public void onStartTrackingTouch(SeekBar seekBar) {23                 if (seekBar.getId()==R.id.seekBar){24 25                 }26             }27 28             //滑动停止时触发29             @Override30             public void onStopTrackingTouch(SeekBar seekBar) {31                 if (seekBar.getId()==R.id.seekBar){32 33                 }34             }35         });36     }

 

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

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

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

 

 

 

 

 

2、星级评分控件

1  

 

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

 

1 
6 android:numStars="7"
7 android:rating="5"
8 android:stepSize="1" />

 

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

默认为false,可修改。

 

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

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

 

 

 

 

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

 

转载于:https://www.cnblogs.com/chy18883701161/p/10883908.html

你可能感兴趣的文章
BZOJ2728 HNOI2012与非(并查集+数位dp)
查看>>
内存分配
查看>>
js 查找页面重复元素
查看>>
List用法与介绍
查看>>
实验四
查看>>
<input type="image">图片按钮具有提交功能
查看>>
安卓扁平化之路专题(二)ActionBar的Overlay模式
查看>>
层级 z-index 透明opacity
查看>>
2016.2.23_导入maven工程遇见的问题【问题】
查看>>
洛谷P3649 [APIO2014]回文串(回文自动机)
查看>>
洛谷P4012 深海机器人问题(费用流)
查看>>
LOJ#162. 快速幂 2(分块)
查看>>
LOJ#6360. 复燃「恋之埋火」(最小圆覆盖+高斯消元)
查看>>
高精度运算模板
查看>>
Merge Two Sorted Lists
查看>>
jsonp和jsonpcallback的使用
查看>>
jquery 只有二级下拉菜单
查看>>
maven 基本常识以及命令
查看>>
网格化
查看>>
数据库中,什么是事务,事务的特性
查看>>