2013-12-08 42 views
0

我想尋求一個在進度爲0時呈綠色的尋找欄。 當進度達到50,然後再慢時,顏色緩慢變爲黃色當進度爲100時變爲紅色。Android SeekBar:如何更改正在進行的完整seekbar的顏色

我能夠對搜索欄的進度部分執行此操作。

但是我想要改變搜索條的全部顏色,而不僅僅是進度部分。

有人可以幫忙嗎?

謝謝。

回答

0

試試這個,你需要改變HSV陣列,以滿足您的需求

final ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); 
LayerDrawable ld = (LayerDrawable) pb.getProgressDrawable(); 
final Drawable progressDrawable = ld.findDrawableByLayerId(android.R.id.progress); 
OnTouchListener l = new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int progress = (int) (event.getX() * 100/pb.getWidth()); 
     float[] hsv = { 
       event.getX() * 360/pb.getWidth(), 1, 1 
     }; 
     int color = Color.HSVToColor(hsv); 
     progressDrawable.setColorFilter(color, Mode.SRC); 
     pb.setProgress(progress); 
     return true; 
    } 
}; 
pb.setOnTouchListener(l); 
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, 32); 
setContentView(pb, lp);