我想以編程方式將1.0浮點值映射到RGB顏色。下面的程序對我來說工作得很好,但它取得了浮點值並與某個範圍進行比較,並返回硬編碼的RGB值。如何根據某些變量更改RGB值? (值映射顏色)
取而代之,我想根據浮點值更改RGB值。在我的邏輯中,當然我得到1.1到1.9的相同顏色,但是我希望動態地改變基於1.0到5.0的RGB。
如果我嘗試將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";
}
}
任何幫助?
是的,我正在尋找一個漸變。我在edittext中有25個不同的值,它應該代表基於edittxt –
中的值的背景顏色,請閱讀更新後的答案。全清? –
我認爲(f-1.5)/(2.5-1.5)是雙倍的,但是需要的是浮動。並評估返回一個對象不是整數。但會再次檢查。 –