SeekBar的使用和自定义
16lz
2021-01-23
SeekBar
继承于ProgressBar
,实际上就是一个可以拖动的进度条。
在XML文件中创建SeekBar
SeekBar
的几个常用属性和ProgressBar
完全相同。android:max
用来指定最大进度,android:progress
用来指定当前显示的进度。如果有需要的话,还可以使用android:secondaryProgress
来指定第二进度。
<SeekBar android:id="@+id/seek_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />
为SeekBar设置监听器
SeekBar
使用的监听器是OnSeekBarChangedListener
,需要重写三个方法:
onStopTrackingTouch()
:在停止滑动的时候调用;onStartTrackingTouch()
:在开始滑动的时候调用;onProgressChanged()
:在正在拖动的时候调用。
在设置监听器之前,首先要对SeekBar
实例化。
seekBar = (SeekBar) findViewById(R.id.seek_bar); seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { textView1.setText("停止拖动"); } @Override public void onStartTrackingTouch(SeekBar seekBar) { textView1.setText("开始拖动"); textView2.setText(seekBar.getProgress() + ""); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { textView1.setText("正在拖动"); textView2.setText(seekBar.getProgress() + ""); } });
上面的代码用两个TextView
显示出了当前的状态和进度。
自定义SeekBar
自定义SeekBar
和自定义ProgressBar
很相似。但SeekBar
除了可以对android:progressDrawable
进行自定义以外,还可以对android:thumb
进行自定义。后者可以改变游标的样式。
android:thumb
通常也被定义为一个State List:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/select" android:state_pressed="true"/> <item android:drawable="@drawable/select" android:state_selected="true"/> <item android:drawable="@drawable/normal"/>selector>
最后,可以在style文件中修改android:thumb
属性,也可以直接在SeekBar
中指定android:thumb
属性:
android:thumb="@drawable/my_thumb"
更多相关文章
- 三种方式实现自定义圆形页面加载中效果的进度条
- android按钮监听器的写法
- android中SeekBar拖动进度条的使用及事件监听
- Android学习笔记:进度条ProgressBar和线程
- Android学习笔记(十六)进度条
- Android中显示进度的控件
- Android 小項目之---Iphone拖动图片特效 (附源码)
- Android的消息提示框,ImageView,进度条