做最簡單的事情就是把ImageView
要更新的參數之一:
public void updateImage(ImageView iv, int value) {
iv.setVisibility(View.VISIBLE);
if(value >= 1000 && value <= 800) {
// this will never get called
// number is never greater than 1000 AND smaller than 800
iv.setImageResource(R.drawable.sa);
}
else if(value >= 800 && value <= 500) {
// this will never get called
// number is never greater than 800 AND smaller than 500
iv.setImageResource(R.drawable.sb);
}
else if(value >= 500 && value <= 300) {
// this will never get called
// number is never greater than 500 AND smaller than 300
iv.setImageResource(R.drawable.sc);
}
else if(value >= 300 && value <= 150) {
// this will never get called
// number is never greater than 300 AND smaller than 150
iv.setImageResource(R.drawable.sd);
}
else if(value >= 150 && value <= 50) {
// this will never get called
// number is never greater than 150 AND smaller than 50
iv.setImageResource(R.drawable.se);
}
else {
iv.setImageResource(R.drawable.sa);
}
}
由於你看到上面的代碼有一些邏輯缺陷。你可能需要看上去更像是這樣的:
public void updateImage(ImageView iv, int value) {
iv.setVisibility(View.VISIBLE);
// i assumed that 1000 is a maximum and 0 is minimum
if (value >= 800) {
// from 800 to 1000 make this super green?
iv.setImageResource(R.drawable.sa);
} else if (value >= 500) {
// from 500 to 800 make this normal green?
iv.setImageResource(R.drawable.sb);
} else if (value >= 300) {
// from 300 to 500 make this yellow?
iv.setImageResource(R.drawable.sc);
} else if (value >= 150) {
// from 150 to 300 make this orange?
iv.setImageResource(R.drawable.sd);
} else {
// from 0 to 150 make this red?
iv.setImageResource(R.drawable.se);
}
}
然後你把這個代碼:
updateImage(third, value);
怎麼可能是一個值可以大於800,但低於500 ???你已經定義了所有錯誤的條件...... – 2014-10-22 09:50:39