Я пытаюсь программно сопоставить значения с плавающей точкой от 1.0 до 5.0 с цветами RGB. Ниже программа работает нормально для меня, но она принимает значение с плавающей запятой и сравнивает с некоторым диапазоном и возвращает жестко закодированные значения RGB.
Вместо этого я хочу изменить значения RGB на основе значений с плавающей запятой. В моей логике я точно получаю один и тот же цвет от 1,1 до 1,9, но я хочу динамически изменять RGB на основе от 1,0 до 5,0.
Если бы я попытался переключить R, G, B, но не смог этого сделать.
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String test = "1.8,-0.9,3,4.9,2.3";
String[] sep = test.split(","); //seperating data on ","
et0.setText(sep[0]);
float f0 = Float.parseFloat(sep[0]); // changing string to float to compare in checkdata();
et0.setBackgroundColor(Color.parseColor(checkdata(f0)));
et1.setText(sep[1]);
float f1 = Float.parseFloat(sep[1]);
et1.setBackgroundColor(Color.parseColor(checkdata(f1)));
et2.setText(sep[2]);
float f2 = Float.parseFloat(sep[2]);
et2.setBackgroundColor(Color.parseColor(checkdata(f2)));
et3.setText(sep[3]);
float f3 = Float.parseFloat(sep[3]);
et3.setBackgroundColor(Color.parseColor(checkdata(f3)));
et4.setText(sep[4]);
float f4 = Float.parseFloat(sep[4]);
et4.setBackgroundColor(Color.parseColor(checkdata(f4)));
}
});
}
public String checkdata(float f) {
if (f<1) {
return "#000000" ;
}
if ( f >=1 && f<2) {
return "#febebb" ;
}
if (f >= 2 && f<3) {
return "#fe8f8b" ;
}
if (f >=3 && f<4) {
return "#fe5953" ;
}
if (f >=4 && f<5) {
return "#ff0900" ;
}
else {
return "#000000";
}
}
Любая помощь?