Android开发Android技术知识Android知识

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();
 }});
}
效果图
SeekBar与ProgressBar同步.png
上一篇下一篇

猜你喜欢

热点阅读