所以我需要根据我的开关盒功能显示其中一个图像,我真的不知道最好的方法是什么。我是否真的需要将它们放在xml文件中,我可以在函数中绘制它们吗?另外,我是否需要将此功能放入活动中?
我可以为您提供我的开关案例功能:
public void BloodStatistics(){
String state;
int cases=1;
switch(cases){
case 1: if(sys<90 && dys<60)
state="Hypotension";
break;
case 2: if(sys>90 && sys<119 && dys>60 && dys<79)
state="Desriable";
break;
case 3: if(sys>120 && sys<139 && dys>80 && dys<89)
state="Prehypertension";
break;
case 4: if(sys>140 && sys<159 && dys>90 && dys<99)
state="Hypertension Stage 1";
break;
case 5: if(sys>160 && sys<179 && dys>100 && dys<109)
state="Hypertension Stage 2";
break;
case 6: if(sys>=180 && dys>=110)
state="Hypertension Crisis";
break;
case 7: if(sys<90 && dys>=60)
state="Hypotension";
break;
default: state="invalid mesurements";
break;
}
}
这些是我的照片:
ImageView Hypotension, Desriable, Prehypertension, Hypertension_Stage_1, Hypertension_Stage_2, Hypertension_Crisis;
如果问题看起来太容易,我很抱歉:(
答案 0 :(得分:3)
我会使用一个ImageView
,然后根据您的条件将图像设置为它。你的switch语句我也有些困惑。根据我的理解,你只是检查血压范围,所以我的代码是这样的:
ImageView image = findViewById(R.id.status_image);
int res;
if(sys<90 && dys<60) {
res = r.drawable.Hypotension;
}
else if(sys>90 && sys<119 && dys>60 && dys<79) {
res = r.drawable.Desriable;
}
else if(sys>120 && sys<139 && dys>80 && dys<89) {
res = r.drawable.Prehypertension;
}
else if(sys>140 && sys<159 && dys>90 && dys<99) {
res = r.drawable.Hypertension_Stage_1;
}
else if(sys>160 && sys<179 && dys>100 && dys<109) {
res = r.drawable.Hypertension_Stage_2;
}
else if(sys>=180 && dys>=110) {
res = r.drawable.Hypertension_Crisis;
}
else if(sys<90 && dys>=60) {
res = r.drawable.Hypotension;
}
else {
res = 0;
}
if(res != 0) {
image.setImageDrawable(res);
}
确保将包含您指定名称的图片放入drawable
文件夹(或者更好的是,将每张图片的不同分辨率版本放入drawable-ldpi
,drawable-mdpi
,{{1 }和drawable-hdpi
答案 1 :(得分:0)
您的switch
没有任何意义,因为您将始终进入case 1:
,删除switch
/ case
内容并仅使用if ... else
进行操作。
String state="invalid mesurements"; // or use the R.id. here and make state int
if(sys<90 && dys<60)
state="Hypotension";
if(sys>90 && sys<119 && dys>60 && dys<79)
state="Desriable";
if(sys>120 && sys<139 && dys>80 && dys<89)
state="Prehypertension";
if(sys>140 && sys<159 && dys>90 && dys<99)
state="Hypertension Stage 1";
if(sys>160 && sys<179 && dys>100 && dys<109)
state="Hypertension Stage 2";
if(sys>=180 && dys>=110)
state="Hypertension Crisis";
if(sys<90 && dys>=60)
state="Hypotension";
要小心:如果多个if
匹配,条件state
将被覆盖,因此请将最重要的案例排在最后。