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会失效,看源码得知
可以发现当前mThumb是null时,needUpdate=false,后面就不会重新绘制。
如果需要向抖音那样的需求是thumb动态显示和隐藏可以考虑设置透明样式的thumb
2.SeekBar的全屏显示
<SeekBar
android:id="@+id/alivc_info_small_seekbar"
style="@style/alivc_info_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
如上述在xml 绘制seekbar时,并不会如我们所愿 seekbar宽度全屏,而是在左右两边有间距,是seekbar自身在计算进度条的绘制长度时会预留左右边距
添加如下属性即可
android:paddingStart="0dp"
android:paddingEnd="0dp"