SeekBar与ProgressBar实现进度同步

作者: dayang | 来源:发表于2016-12-08 22:01 被阅读1367次

    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

    相关文章

      网友评论

        本文标题:SeekBar与ProgressBar实现进度同步

        本文链接:https://www.haomeiwen.com/subject/cnbfmttx.html