당신이 당신의 요구를 충족하기 위해 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);