【问题标题】:How to change seek bar progress colour according to its progress?如何根据进度更改搜索栏进度颜色?
【发布时间】:2026-02-01 06:50:01
【问题描述】:

我想创建一个自定义搜索栏,当用户更改栏的进度时,其进度栏的颜色会在红色和蓝色之间变化。

我试过了,但它只是改变背景颜色而不是进度条颜色。

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }

            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }

            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {


                seekBar.setBackgroundColor(Color.RED + progress);

            }
        });

【问题讨论】:

    标签: android colors seekbar


    【解决方案1】:

    有很多方法可以做到这一点,我会告诉简单的方法。 你可以像这样设置progressBackground的颜色:

    seekBar.getProgressDrawable().setColorFilter("<Color you wish>", PorterDuff.Mode.MULTIPLY);
    

    如果您的 api 级别为 21,则可以使用 getProgressBackgroundTintList 或 getProgressBackgroundTintMode()。

    【讨论】:

    • 这不会改变棒棒糖之前的 Seekbar 进度的色调。
    • 至少在我的 Android 8 设备上不起作用。知道为什么它不起作用吗?
    【解决方案2】: