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

相关内容

热门资讯

透视中牌率!飞驰娱乐科技&qu... 透视中牌率!飞驰娱乐科技"关于辅助技巧"一直确实有挂(哔哩哔哩)1、全新机制【飞驰娱乐科技ai辅助工...
黑科技辅助挂!雀神麻将辅助透视... 黑科技辅助挂!雀神麻将辅助透视"详细辅助软件"好像真的有挂(哔哩哔哩)1、许多玩家不知道雀神麻将辅助...
为了进一步!越乡游辅助器下载免... 为了进一步!越乡游辅助器下载免费"了解辅助插件"其实存在有挂(哔哩哔哩)1)越乡游辅助器下载免费有没...
攻略辅助挂!xpoker辅助工... 攻略辅助挂!xpoker辅助工具"开挂辅助软件"确实存在有挂(哔哩哔哩)1、每一步都需要思考,不同水...
辅助透视!陕麻圈有挂吗&quo... 辅助透视!陕麻圈有挂吗"分享辅助挂"好像是有挂(哔哩哔哩)1、陕麻圈有挂吗公共底牌简单,陕麻圈有挂吗...
刚刚!微信小程序外辅助工具&q... 刚刚!微信小程序外辅助工具"关于辅助技巧"切实是真的有挂(哔哩哔哩)1、微信小程序外辅助工具有没有辅...
透视肯定!微乐贵阳捉鸡麻将能不... 透视肯定!微乐贵阳捉鸡麻将能不能开挂"科普辅助方法"切实确实有挂(哔哩哔哩)1、让任何用户在无需微乐...
此事备受玩家关注!新西部透视挂... 此事备受玩家关注!新西部透视挂辅助器"详情辅助app"好像真的有挂(哔哩哔哩)暗藏猫腻,小编详细说明...
代打辅助挂!火神辅助官网地址&... 代打辅助挂!火神辅助官网地址"解密辅助神器"原来存在有挂(哔哩哔哩)1、火神辅助官网地址透视辅助软件...
一直以来!雀友会广东潮汕辅助&... 一直以来!雀友会广东潮汕辅助"详细辅助方法"竟然真的有挂(哔哩哔哩)1、雀友会广东潮汕辅助透视辅助软...