您当前的位置: 首页 >  ar

Kevin-Dev

暂无认证

  • 0浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Android -- UI 开发】ProgressBar & SeekBar 的基本使用

Kevin-Dev 发布时间:2019-02-26 14:04:51 ,浏览量:0

前言

本节给大家带来的是 Android 基本UI控件中的 ProgressBar (进度条) 和 SeekBar(拖动条)。

ProgressBar 效果图

在这里插入图片描述

应用场景

ProgressBar 的应用场景很多,比如:

  • 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;
  • 当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会以为程序Carsh或者手机死机 了,这样会大大降低用户体验,所以在需要进行耗时操作的地方,添加上进度条,让用户知道当前的程序 在执行中,也可以直观的告诉用户当前任务的执行进度等!
属性
  • android:max:进度条的最大值
  • android:progress:进度条已完成进度值
  • android:progressDrawable:设置轨道对应的Drawable对象
  • android:indeterminate:如果设置成true,则进度条不精确显示进度
  • android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
  • android:indeterminateDuration:设置不精确显示进度的持续时间
  • android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!

对应的 Java 中代码方法:

  • getMax():返回这个进度条的范围的上限
  • getProgress():返回进度
  • getSecondaryProgress():返回次要进度
  • incrementProgressBy(int diff):指定增加的进度
  • isIndeterminate():指示进度条是否在不确定模式下
  • setIndeterminate(boolean indeterminate):设置不确定模式下
布局代码


    

    

    

    

    
    

    


SeekBar 效果图

在这里插入图片描述

基本用法
  • 常用的属性

    • android:max=“100” //滑动条的最大值
    • android:progress=“60” //滑动条的当前值
    • android:secondaryProgress=“70” //二级滑动条的进度
    • android:thumb = “@mipmap/sb_icon” //滑块的drawable
  • SeekBar 的事件

    • onProgressChanged:进度发生改变时会触发
    • onStartTrackingTouch:按住SeekBar时会触发
    • onStopTrackingTouch:放开SeekBar时触发
实现代码
public class MainActivity extends AppCompatActivity {

    private SeekBar sb_normal;
    private TextView txt_cur;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = MainActivity.this;
        bindViews();
    }

    private void bindViews() {
        sb_normal = (SeekBar) findViewById(R.id.sb_normal);
        txt_cur = (TextView) findViewById(R.id.txt_cur);
        sb_normal.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                txt_cur.setText("当前进度值:" + progress + "  / 100 ");
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                Toast.makeText(mContext, "触碰SeekBar", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Toast.makeText(mContext, "放开SeekBar", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
图片资源自定义 SeekBar
  • 导入滑动块图片(scrubber.png scrubber_focus.png),进度条就直接 xml 绘制 scrubber_selector.xml
  
  
      
      
  
  • seekbar_layer.xml(进度条绘制)
  
  
      
      
      
          
              
              
          
      
      
      
          
              
                  
                  
              
          
      
      
      
          
              
                  
                  
              
          
      
  
关注
打赏
1658837700
查看更多评论
立即登录/注册

微信扫码登录

0.0381s