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

相关内容

热门资讯

五分钟了解(wpk透视辅助)黑... 【福星临门,好运相随】;五分钟了解(wpk透视辅助)黑科技透明挂辅助科技(透视)必备教程(2020已...
三分钟了解(WPK苹果)外挂辅... 三分钟了解(WPK苹果)外挂辅助插件安装神器(透视)必胜教程(2022已更新)(哔哩哔哩)是一款可以...
3分钟了解(推扑克)软件透明挂... 3分钟了解(推扑克)软件透明挂辅助器(透视)技巧教程(2022已更新)(哔哩哔哩);一、推扑克有挂的...
第5分钟了解(约局吧)外挂智能... 第5分钟了解(约局吧)外挂智能ai辅助工具(透视)攻略教程(2023已更新)(哔哩哔哩);AI辅助机...
第4分钟了解(来玩app德州)... 第4分钟了解(来玩app德州)软件透明挂辅助挂(透视)解密教程(2025已更新)(哔哩哔哩);来玩a...
三分钟了解(wpk辅助器)外挂... 您好,wpk辅助器这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款...
第六分钟了解(monopoly... 第六分钟了解(monopolypoker)外挂透明挂辅助工具(透视)我来教教你(2020已更新)(哔...
六分钟了解(德州alphax)... 六分钟了解(德州alphax)黑科技透明挂辅助器(透视)普及教程(2020已更新)(哔哩哔哩);德州...
五分钟了解(we-poker)... 五分钟了解(we-poker)外挂透明挂辅助插件(透视)可靠教程(2020已更新)(哔哩哔哩)是一款...
5分钟了解(aapoker工具... 5分钟了解(aapoker工具)外挂透明挂辅助神器(透视)AI教程(2020已更新)(哔哩哔哩);1...