android 带刻度的滑动条_Android 拖动条/滑动条控件、星级评分控件

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

1

3 android:layout_height="wrap_content"

4 android:id="@+id/seekBar"

5 android:min="0"

6 android:max="100"

7 android:progress="50" />

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

1

3 android:layout_height="100dp"

4 android:id="@+id/seekBar"

5 android:thumb="@drawable/a"

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

说明:

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

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

1 SeekBar mySeekBar=findViewById(R.id.seekBar);2 mySeekBar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener() {3 /*

4 三个形参:5 SeekBar seekBar 触发此事件/监听的Seekbar6 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, booleanfromUser) {14 //判断改变的是否是指定的滑动条。预防当前Activity对应的xml布局中有多个滑动条,如果只有一个滑动条,则不必判断

15 if (seekBar.getId()==R.id.seekBar){16

17 }18 }19

20 //滑动开始时触发

21 @Override22 public voidonStartTrackingTouch(SeekBar seekBar) {23 if (seekBar.getId()==R.id.seekBar){24

25 }26 }27

28 //滑动停止时触发

29 @Override30 public voidonStopTrackingTouch(SeekBar seekBar) {31 if (seekBar.getId()==R.id.seekBar){32

33 }34 }35 });36 }

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

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

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

2、星级评分控件

1

3 android:layout_height="wrap_content"

4 />

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

1

3 android:layout_height="wrap_content"

4 android:id="@+id/ratingBar"

5 android:isIndicator="true"

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 //获取已点的星数,因为步长可以为小数,所以获取到的是float

3 float rates=ratingBar.getRating();

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

你可能感兴趣的:(android,带刻度的滑动条)