如何正确去掉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))即可生效。

相关推荐
某空m1 小时前
【Android】View滑动的实现
android
芝麻开门-新起点2 小时前
Android 和 iOS 系统版本及开发适配
android·ios·cocoa
2501_915918412 小时前
iOS描述文件功能解析
android·macos·ios·小程序·uni-app·cocoa·iphone
用户69371750013843 小时前
一文彻底搞懂 Android 依赖配置:implementation vs testImplementation,再也不混淆!
android
TimeFine4 小时前
Android WebView暗夜模式适配
android
studyForMokey4 小时前
【Android Activity】生命周期深入理解
android·kotlin
浅影歌年4 小时前
Android 嵌入h5顶部状态栏空白
android
来来走走7 小时前
kotlin学习 lambda编程
android·学习·kotlin
无知的前端7 小时前
一文精通-Kotlin中双冒号:: 语法使用
android·kotlin
Andy8 小时前
Mysql基础2
android·数据库·mysql