作用:可以通过滑块的位来标示数值,而且拖动条允许用户拖动滑块来改变进度值的大小
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50" />
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.java
主要方法:
- setMax()
- setProgress()
- setSecondaryProgress()
事件:
- 数值改变(OnProgressChanged)
- 开始拖动(OnStartTrackingTouch)
- 停止拖动(OnStopTrackingTouch)
public class MainActivity extends ActionBarActivity {
private SeekBar seekBar;
private TextView tv1;
private TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
seekBar=(SeekBar) findViewById(R.id.seekBar);
//利用TextView表明SeekBar目前的状态
tv1=(TextView) findViewById(R.id.tv1);
tv2=(TextView) findViewById(R.id.tv2);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
//数值改变
@Override
public void onStopTrackingTouch(SeekBar arg0) {
tv1.setText("停止拖动");
}
//开始拖动
@Override
public void onStartTrackingTouch(SeekBar arg0) {
tv1.setText("开始拖动");
}
//数值改变
@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
tv1.setText("正在拖动");
tv2.setText("当前数值"+progress);
}
});
}
}
自定义SeekBar的进度条
//改变进度条的样式
android:progressDrawable="@drawable/img"
//改变滑块的样式
android:thumb="@drawable/thumb"