Android SeekBar:如何在进程中更改完整SeekBar的颜色
我想找一个进度为0时呈绿色的搜索栏。 当进度达到50时,颜色慢慢变为黄色,当进度达到100时,颜色再次慢慢变为红色 我可以为seekbar的进度部分做这些 但我想改变搜索栏的全彩,而不仅仅是进度部分 有人能帮忙吗Android SeekBar:如何在进程中更改完整SeekBar的颜色,android,seekbar,Android,Seekbar,我想找一个进度为0时呈绿色的搜索栏。 当进度达到50时,颜色慢慢变为黄色,当进度达到100时,颜色再次慢慢变为红色 我可以为seekbar的进度部分做这些 但我想改变搜索栏的全彩,而不仅仅是进度部分 有人能帮忙吗 谢谢。试试这个,您需要更改hsv阵列以满足您的需要 final ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); LayerDrawable ld = (La
谢谢。试试这个,您需要更改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);