我是靠谱客的博主 笑点低往事,这篇文章主要介绍Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码,现在分享给大家,希望可以做个参考。

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

复制代码
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" /> <!--滑块默认位置-->

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

复制代码
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、星级评分控件

复制代码
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开发之拖动条/滑动条控件、星级评分控件功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对靠谱客网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

最后

以上就是笑点低往事最近收集整理的关于Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码的全部内容,更多相关Android开发之拖动条/滑动条控件、星级评分控件功能内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(112)

评论列表共有 0 条评论

立即
投稿
返回
顶部