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

相关推荐
刘大猫.1 小时前
重塑经典:Snapseed4.0全面登陆安卓,内置“胶片相机”与专业手动模式
android·数码相机·ai·机器人·大模型·算力·snapseed4.0
Languorous.1 小时前
MySQL聚合查询:COUNT、SUM、AVG用法,实战案例演示
android·数据库
沅霖1 小时前
Android Studio Java工程开发环境,怎么切换到Kotlin开发环境
android·kotlin·android studio
largecode1 小时前
企业名称能在来电显示吗?号码显示公司名服务打通多终端展示
android·xml·ios·iphone·xcode·webview·phonegap
龙之叶1 小时前
Android 12:从 Editor 到 FloatingToolbar 全局收敛长按菜单
android
Kapaseker2 小时前
Kotlin SharedFlow 的三个参数到底有啥用
android·kotlin
DogDaoDao2 小时前
Android MediaCodec 全面详解:从入门到精通
android·音视频·实时音视频·视频编解码·短视频·视频直播·mediacodec
重生之小比特2 小时前
【MySQL 数据库】用户管理与权限控制
android·数据库·mysql
御水流红叶2 小时前
Android-Unity游戏逆向思路
android·游戏·unity
刮风那天2 小时前
Android 验证进程优先级设置是否成功
android