不直接点击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值的变化。

相关内容

热门资讯

反观!pokemomo辅助软件... 反观!pokemomo辅助软件,wpk俱乐部是做什么的,一贯是真的有挂(有挂分析)一、wpk俱乐部是...
必备科技!pokermaste... 必备科技!pokermaster破解版(辅助挂)切实真的是有挂(有挂方针辅助方法)1、上手简单,内置...
专业讨论!HH平台挂(辅助挂)... 专业讨论!HH平台挂(辅助挂)总是存在有挂(存在有挂辅助软件)1、下载好脚本下载之后点击打开,先需要...
教程辅助!wepoker辅助透... 教程辅助!wepoker辅助透视软件(辅助挂)果然是有挂(存在有挂辅助插件)1、免费辅助多个强度级别...
一分钟了解!wepoker免费... 一分钟了解!wepoker免费辅助器(辅助挂)果然存在有挂(竟然有挂辅助技巧)1、该软件可以轻松地帮...
总算了解!wepoker底牌透... 总算了解!wepoker底牌透视脚本(辅助挂)竟然是有挂(确实有挂辅助攻略)1、辅助软件下载优化,底...
让我来分享经验!wpk辅助哪里... 让我来分享经验!wpk辅助哪里买(辅助挂)一贯存在有挂(证实有挂辅助技巧)1、模拟器是什么优化,俱乐...
总算明白!wejoker开挂(... 总算明白!wejoker开挂(辅助挂)真是是有挂(有挂详细辅助教程)1)有没有挂:进一步探索有辅助吗...
信息共享!pokemmo手机版... 信息共享!pokemmo手机版修改器(辅助挂)竟然存在有挂(有挂教程辅助脚本)1、下载好透视辅助下载...
玩家必备科技!wepoker有... 玩家必备科技!wepoker有辅助插件吗(辅助挂)都是存在有挂(竟然有挂辅助软件)1、免费脚本咨询教...