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

相关推荐
z***751541 分钟前
【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之后端环境搭建
android·前端·后端
程序员陆业聪43 分钟前
Android模拟器检测全面指南:从基础到高级策略
android
2501_916008892 小时前
iOS 性能测试的深度实战方法 构建从底层指标到真实场景回放的多工具测试体系
android·ios·小程序·https·uni-app·iphone·webview
w***95492 小时前
SQL美化器:sql-beautify安装与配置完全指南
android·前端·后端
r***12383 小时前
若依微服务中配置 MySQL + DM 多数据源
android·mysql·微服务
ALex_zry4 小时前
MySQL连接数管理与优化实操经验分享
android·mysql·adb
apigfly5 小时前
深入Android系统(十三)Android的窗口系统
android·设计模式·源码
k***85845 小时前
【SpringBoot】【log】 自定义logback日志配置
android·前端·后端
S***q1925 小时前
Kotlin内联函数优化
android·开发语言·kotlin
小墙程序员5 小时前
在Android中,kotlin 的一些开发技巧(二)
android·kotlin