不直接点击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有辅助挂(德州ai软件购买)确实有挂(有挂透视)-哔哩哔哩是一款可以让一直输的玩家...
黑科技ai代打!德扑之星系统发... 黑科技ai代打!德扑之星系统发牌机制(德州ai辅助)本来真的是有挂(有挂功能)-哔哩哔哩1、超多福利...
黑科技有挂!gg扑克辅助(we... 黑科技有挂!gg扑克辅助(wepoke智能ai)都是真的有挂(有挂猫腻)-哔哩哔哩1、起透看视 we...
黑科技智能ai!微扑克必胜技巧... 1、黑科技智能ai!微扑克必胜技巧(德州ai软件购买)最初有挂(有挂透明挂)-哔哩哔哩;代表性(透视...
黑科技存在!聚星扑克辅助软件(... 黑科技存在!聚星扑克辅助软件(wepoke黑科技)一贯真的是有挂(真的有挂)-哔哩哔哩1、玩家可以在...
黑科技ai!德州之星辅助器多少... 黑科技ai!德州之星辅助器多少钱(aapokerai辅助)一向存在有挂(有挂方法)-哔哩哔哩1、不需...
黑科技挂!pokermaste... 黑科技挂!pokermaster外挂(wpk ai辅助)本来是真的有挂(有挂规律)-哔哩哔哩(1)黑...
黑科技脚本!云扑克有挂(wep... 1、黑科技脚本!云扑克有挂(wepoke有没有挂)起初存在有挂(有挂技术)-哔哩哔哩2、进入游戏-大...
黑科技免费!aapoker辅助... 您好,wepoke透明黑科技这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
黑科技工具!红龙扑克有挂(wp... 黑科技工具!红龙扑克有挂(wpk到底有没有外挂)其实有挂(真是有挂)-哔哩哔哩1、不需要AI权限,帮...