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

相关推荐
sky丶Mamba几秒前
CentOS Stream 9安装MySQL
android·mysql·centos
wei1155611 分钟前
framework.jar使用
android
Lei活在当下9 小时前
【项目踩坑实录】并发环境下,Glide缓存引起的图片加载异常
android·debug·glide
my_power52011 小时前
检出git项目到android studio该如何配置
android·git·android studio
三少爷的鞋14 小时前
Repository 方法设计:suspend 与 Flow 的决选择指南(以朋友圈为例)
android
阿里云云原生14 小时前
Android App 崩溃排查指南:阿里云 RUM 如何让你快速从告警到定位根因?
android·java
cmdch201716 小时前
手持机安卓新增推送按钮功能
android
攻城狮201517 小时前
【rk3528/rk3518 android14 kernel-6.10 emcp sdk】
android
何妨呀~17 小时前
mysql 8服务器实验
android·mysql·adb
QuantumLeap丶17 小时前
《Flutter全栈开发实战指南:从零到高级》- 25 -性能优化
android·flutter·ios