2013-12-08 6 views
0

진행률이 0 일 때 녹색으로 표시되는 검색 바를 원합니다. 진행률이 50에 도달하면 천천히 노란색으로 변하고 다시 천천히 변경됩니다 진행률이 100이면 빨간색으로 변경됩니다.Android 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);