SeekBar与ProgressBar实现进度同步
2016-12-08 本文已影响1367人
dayang
ProgressBar
拖拽SeekBar与ProgressBar实现同步
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="20"
android:max="100"/>
<ProgressBar
android:id="@+id/proBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="20"
android:max="100"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>
</LinearLayout>
SeekBar.OnSeekBarChangeListener监听事件
重写onProgressChanged(SeekBar seekBar,int i,boolean b)方法
进行两个控件的进度设置setProgress(int progress);
onProgressChanged()方法中布尔参数表示
false:表示seekBar自动变化 true:表示用户自己在拖拽
private void initView(){
SeekBar seekBar= (SeekBar) findViewById(R.id.seekBar);
final ProgressBar progressBar= (ProgressBar) findViewById(R.id.proBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
//b:true 表示用户拖拽,false:表示seekBar自己在加载
if(b){
progressBar.setProgress(i);
}}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Toast.makeText(MainActivity.this,"开始拖拽",Toast.LENGTH_SHORT).show();
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(MainActivity.this,"结束拖拽",Toast.LENGTH_SHORT).show();
}});
}