J'essaie de mapper par programmation des valeurs flottantes de 1.0 à 5.0 aux couleurs RVB. Le programme ci-dessous fonctionne bien pour moi, mais il prend une valeur flottante et compare avec une certaine plage et renvoie des valeurs RVB codées en dur. Au lieu de cela, je veux changer les valeurs RVB en fonction des valeurs flottantes. Dans ma logique, je reçois la même couleur pour 1.1 à 1.9, mais je veux changer dynamiquement RGB basé sur 1.0 à 5.0.Comment changer les valeurs RVB en fonction de certaines variables? (Couleurs mappées de la valeur)
Si j'ai essayé de déplacer R, G, B, mais que je n'ai pas pu le faire.
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";
}
}
Une aide?
Oui, je suis à la recherche d'un dégradé. J'ai 25 valeurs différentes dans edittext et il devrait représenter la couleur de fond basée sur les valeurs dans le edittxt –
s'il vous plaît lire la réponse mise à jour. Tout est clair? –
Je pense (f-1.5) /(2.5-1.5) est double, mais nécessaire est flottant. Et évaluer renvoie un objet non entier. Mais va vérifier à nouveau. –