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

相关推荐
问心无愧05133 小时前
ctf show web入门111
android·前端·笔记
ha_lydms9 小时前
AnalyticDB分区、分布键性能优化
android·大数据·分布式·性能优化·分布式计算·分区·analyticdb
星辰10 小时前
Ijkplayer重新编译支持h264裸流
android
测试开发-学习笔记10 小时前
Android studio安装
android·ide·android studio
宋拾壹10 小时前
同时添加多个类目
android·开发语言·javascript
●VON11 小时前
AtomGit Flutter鸿蒙客户端:数据模型
android·服务器·安全·flutter·harmonyos·鸿蒙
火柴就是我12 小时前
记录一个文本随手指缩放的功能
android
Zender Han12 小时前
Android APK 签名 v1、v2、v3、v4 有什么区别?
android
神仙别闹12 小时前
基于 PHP + MySQL学生信息管理系统
android·mysql·php
墨狂之逸才13 小时前
Android 保活机制详解 —— 从概念到实践
android