SeekBar的一些使用技巧

1.thumb的动态替换

Seekbar的拖动标签一般在xml中使用android:thumb设置就ok;有时候需要适应额外的需求动态配置,使用以下方法

初始化时设置

 Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.white_circle_10);
mSmallSeekbar.setThumb(drawable);

当seekbar已经使用时,可能出现配置thumb出现大小适配问题,需要配置drawable的范围

    Rect bounds = mSmallSeekbar.getThumb().getBounds();
            Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.white_circle_10);
            drawable.setBounds(bounds);
            mSmallSeekbar.setThumb(drawable);
            mSmallSeekbar.setEnabled(true);

这里有一个注意点,当我们设置setThumb(null)之后可以去除拖动的图标,但是之后再setThumb会失效,看源码得知


image.png

可以发现当前mThumb是null时,needUpdate=false,后面就不会重新绘制。
如果需要向抖音那样的需求是thumb动态显示和隐藏可以考虑设置透明样式的thumb

2.SeekBar的全屏显示

  

如上述在xml 绘制seekbar时,并不会如我们所愿 seekbar宽度全屏,而是在左右两边有间距,是seekbar自身在计算进度条的绘制长度时会预留左右边距
添加如下属性即可

  android:paddingStart="0dp"
   android:paddingEnd="0dp"

你可能感兴趣的:(SeekBar的一些使用技巧)