如何正确去掉SeekBar的Thumb和按压效果

1.setThumb(null)

先将thumb置空或者透明,但实际上,拖动SeekBar时仍旧会有个按压效果,如下图所示

2.setBackground(null)

只需要将背景置空,即不会有按压效果了

3.原因分析

拖动SeekBar显示按压效果,故从onTouchEvent看起,其中基本上都会调用trackTouchEvent:

typescript 复制代码
private void trackTouchEvent(MotionEvent event) {
    // 省略部分代码

    setHotspot(x, y);
    setProgressInternal(Math.round(progress), true, false);
}

注意其中的setHotspot方法:

java 复制代码
private void setHotspot(float x, float y) {
    final Drawable bg = getBackground();
    if (bg != null) {
        bg.setHotspot(x, y);
    }
}

Debug SeekBar可知,背景为RippleDrawable,可知按压效果为RippleDrawable绘制的,故将背景置空(setBackground(null))即可生效。

相关推荐
hai_android9 小时前
Android MeasureSpec 详解
android·java·kotlin
又见情义10 小时前
RK3568 Android 13 本地 U 盘 OTA 升级实战:基于 RKUpdateService 的完整流程
android
Godikov11 小时前
Android10后台弹窗与APK自动更新
android
又见情义12 小时前
RK3568 Android 13 USB OTG/Host 切换调试经验分享
android
终端安全笔记13 小时前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机
JMchen14 小时前
实战案例:实现120fps流畅的渐变进度条
android·kotlin·canvas
敲代码的瓦龙15 小时前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio
Android-Flutter16 小时前
Compose CompositionLocal 详解
android·compose
三少爷的鞋17 小时前
Kotlin 协程闯关:看代码,猜结果
android
2501_9327502619 小时前
Android 跑马灯:从一行 XML 到自定义控件
android