不直接点击SeekBar拇指改变Android SeekBar的值
创始人
2025-01-12 12:00:14
0

要实现不直接点击SeekBar拇指改变Android SeekBar的值,可以通过自定义SeekBar的Thumb来实现。以下是一个示例代码:

首先,创建一个自定义的ThumbDrawable类,继承自Drawable类,用于自定义SeekBar的Thumb样式:

public class CustomThumbDrawable extends Drawable {

    private Paint paint;
    private int color;

    public CustomThumbDrawable(int color) {
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(color);
        paint.setStyle(Paint.Style.FILL);
        this.color = color;
    }

    @Override
    public void draw(Canvas canvas) {
        Rect bounds = getBounds();
        int centerX = bounds.centerX();
        int centerY = bounds.centerY();
        int radius = Math.min(bounds.width(), bounds.height()) / 2;
        canvas.drawCircle(centerX, centerY, radius, paint);
    }

    @Override
    public void setAlpha(int alpha) {
        paint.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(ColorFilter colorFilter) {
        paint.setColorFilter(colorFilter);
    }

    @Override
    public int getOpacity() {
        return PixelFormat.OPAQUE;
    }
}

接下来,在布局文件中定义一个SeekBar,并在代码中设置自定义的ThumbDrawable:


SeekBar seekBar = findViewById(R.id.seekBar);

// 自定义ThumbDrawable
CustomThumbDrawable thumbDrawable = new CustomThumbDrawable(Color.RED);
seekBar.setThumb(thumbDrawable);

seekBar.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            // 禁用直接点击改变SeekBar值
            return true;
        }
        return false;
    }
});

// 监听SeekBar值的变化
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // 处理SeekBar值的变化
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // 开始拖动SeekBar
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // 停止拖动SeekBar
    }
});

通过以上代码,在SeekBar上自定义了一个ThumbDrawable,并通过设置setThumb方法将其应用到SeekBar上。然后通过设置SeekBar的OnTouchListener,禁止了直接点击Thumb改变SeekBar的值。同时,通过设置SeekBar的OnSeekBarChangeListener,监听SeekBar值的变化,可以在onProgressChanged方法中处理SeekBar值的变化。

相关内容

热门资讯

黑科技辅助挂!微乐小程序黑科技... 黑科技辅助挂!微乐小程序黑科技,微乐小程序辅助器脚本(透视)确实真的有挂(哔哩哔哩)1.微乐小程序辅...
4分钟插件!微乐小程序免费黑科... 4分钟插件!微乐小程序免费黑科技,微乐云南小程序修改器ios(开挂)一贯是真的挂(2026)1、4分...
复盘辅助挂!微乐小程序黑科技,... 复盘辅助挂!微乐小程序黑科技,微乐江西小程序辅助器(透视)都是真的有挂(哔哩哔哩)1、微乐江西小程序...
第2分钟教程!微乐小程序免费黑... 第2分钟教程!微乐小程序免费黑科技,微乐游戏辅助脚本安装(开挂)总是真的是有挂(2026)1、实时微...
近期!微乐小程序免费黑科技,微... 近期!微乐小程序免费黑科技,微乐小程序辅助收费(透视)确实真的是有挂(哔哩哔哩)亲,关键说明,微乐小...
七分钟安装!微乐小程序免费黑科... 七分钟安装!微乐小程序免费黑科技,微信小程序微乐为什么老输(开挂)真是是真的挂(2026)1、微乐小...
透视科技!微乐小程序免费黑科技... 透视科技!微乐小程序免费黑科技,微信小程序微乐陕西挖坑辅助(透视)都是是真的挂(哔哩哔哩)微信小程序...
第十分钟安装!微乐小程序黑科技... 第十分钟安装!微乐小程序黑科技,微乐自建房辅助免费入口(开挂)确实是有挂(2026)在进入微乐小程序...
透视数据!微乐小程序黑科技,微... 透视数据!微乐小程序黑科技,微乐四川麻将辅助器(透视)原来真的有挂(哔哩哔哩)1、微乐四川麻将辅助器...
一分钟插件!微乐小程序免费黑科... 一分钟插件!微乐小程序免费黑科技,微乐小程序礼包码(开挂)一直真的有挂(2026);1、该软件可以轻...