2011-12-23 79 views
4

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

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

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); 

      } 
     }); 

回答

5

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

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

如果你的API级别21,可以使用getProgressBackgroundTintList或getProgressBackgroundTintMode()。

+0

这不会改变前棒棒糖上Seekbar进度的色调。 –

+1

@IgorGanapolsky我已经在前棒棒糖测试过,它工作正常! – uiltonsantos