Java 根据条件更改图像

Java 根据条件更改图像,java,android,android-image,Java,Android,Android Image,我正在开发一个体重指数计算器,其中哪个质量状态显示不同的图像 但是我不知道怎么做,而且我在R.id上有一个错误 图像id为“imageBody” package com.example.calculadorimc; 导入android.app.Activity; 导入android.os.Bundle; 导入android.view.Menu; 导入android.view.view; 导入android.widget.EditText; 导入android.widget.ImageView;

我正在开发一个体重指数计算器,其中哪个质量状态显示不同的图像

但是我不知道怎么做,而且我在R.id上有一个错误 图像id为“imageBody”

package com.example.calculadorimc;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.ImageView;
导入android.widget.RadioGroup;
导入android.widget.SeekBar;
导入android.widget.SeekBar.onseekbarchaneglistener;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
私人放射组rgsexo;
编辑文本编辑比索;
编辑文本编辑阿尔图拉;
文本视图imcView;
瑟克巴尔交替;
SeekBar Alterapeso;
ImageView-imagem;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editPeso=(EditText)findViewById(R.id.editPeso);
editAltura=(EditText)findViewById(R.id.editAltura);
imcView=(TextView)findviewbyd(R.id.imcView);
Alteralatura=(SeekBar)findViewById(R.id.Alteralatura);
alterparpeso=(SeekBar)findViewById(R.id.alterparpeso);
imagem=(ImageView)findViewById(R.id.imageBody);
alteraltura.setOnSeekBarChangeListener(alteralturalistener);
alterapeso.setonseekbarchaneglistener(alterapesonlistener);
}
private onseekbarchaneglistener alteralturalistener=new onseekbarchaneglistener(){
@凌驾
更改了公共进程无效(SeekBar SeekBar,int progress,
布尔值(用户){
//TODO自动生成的方法存根
double setAltura=(alteraaltura.getProgress())*.01d;
//莫斯特拉·纳卡萨·奥瓦洛诺沃酒店
editAltura.setText(String.format(%.02f),setAltura.replace(',',');
}
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
}
};
private OnSeekbarChangListener AlterParpesListener=新建OnSeekbarChangListener(){
@凌驾
更改了公共进程无效(SeekBar SeekBar,int progress,
布尔值(用户){
//TODO自动生成的方法存根
//Calcula o novo valor do TIP
int setPeso=(alterarPeso.getProgress());
//莫斯特拉·纳卡萨·奥瓦洛诺沃酒店
editPeso.setText(String.valueOf(setPeso));
}
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
}
};
public void calculateClickHandler(视图){
//确保我们处理计算器按钮的点击
if(view.getId()==R.id.botaCalcular){
//从小部件引用获取用户值
float-peso=float.parseFloat(editPeso.getText().toString());
float altura=float.parseFloat(editAltura.getText().toString());
//计算bmi值
浮动imc值=计算单位(比索,阿尔图拉);
//解释bmi值的含义
字符串IMC解释=解释IMC(IMC值);
//现在在结果文本中设置值
imcView.setText(String.format(“%.02f”,imcValue).replace(“,”,“。)+“-”+imcInterpretation);
}
}
//计算体重指数的公式
//查证http://en.wikipedia.org/wiki/Body_mass_index
私人浮动利率(浮动比索、浮动阿尔图拉){
收益(浮动)(比索/(阿尔图拉*阿尔图拉));
}
//解读体重指数的含义
私有字符串解释IMC(浮点IMC值){
imagem=(ImageView)findViewById(R.id.imageBody);
国际关系;
rgsexo=(放射组)findViewById(R.id.rgsexo);
int selectedId=rgsexo.getCheckedRadioButtonId();//获取id
开关(selectedId)//打开所选按钮
{
案例R.id.radioMasc:
如果(imc值<20){
res=r.可拉伸.纤细;
返回“Abaixo do Peso”;
}否则如果(IMC值<24.9){
res=r.可拉伸.正常;
恢复“比索正常”;
}否则如果(IMC值<29.9){
res=r.可拉伸脂肪;
返回“阿西玛比索”;
}否则如果(IMC值<39.9){
res=r.可拉伸脂肪;
返回“Obesidade Moderada”;
}否则{
res=r.可拉伸脂肪;
返回“Obesidade Mórbida”;
}
案例R.id.radioFem:
如果(imc值<19){
返回“Abaixo do Peso”;
}否则如果(IMC值<23.9){
恢复“比索正常”;
}否则如果(IMC值<28.9){
返回“阿西玛比索”;
}否则如果(IMC值<38.9){
返回“Obesidade Moderada”;
}否则{
返回“Obesidade Mórbida”;
}
}
返回null;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}

谢谢大家的支持!:)

您应该将新图像设置为
ImageView
,如下所示:

imagem = (ImageView)findViewById(R.id.imageBody);
imagem.setImageResource(R.drawable.my_image);
还要注意的是,方法
rgsexo.getCheckedRadioButtonId()
不会从R类中为您提供id,但您需要通过之前的
setId(int-id)
方法(即在xml布局文件中)为按钮设置id。也许最好通过索引在组中区分两个按钮,如下所示:

int radioButtonID = radioButtonGroup.getCheckedRadioButtonId();
View radioButton = radioButtonGroup.findViewById(radioButtonID);
int idx = radioButtonGroup.indexOfChild(radioButton);
因此,整个方法是:

private String interpretIMC(float imcValue) {           
    imagem = (ImageView)findViewById(R.id.imageBody);

    rgsexo = (RadioGroup)findViewById(R.id.rgSexo);
    int selectedId = rgsexo.getCheckedRadioButtonId();  // get the id
    View radioButton = radioButtonGroup.findViewById(radioButtonID);
    int idx = radioButtonGroup.indexOfChild(radioButton);

    switch (idx)   // switch on the button selected
    {
        case 0:
            if (imcValue < 20) {
                imagem.setImageResource(R.drawable.slim);
                return "Abaixo do Peso";
            } else if (imcValue < 24.9) {
                imagem.setImageResource(R.drawable.normal);
                return "Peso Normal";
            } else if (imcValue < 29.9) {
                imagem.setImageResource(R.drawable.fat);
                return "Acima do Peso";
            } else if (imcValue < 39.9) {
                imagem.setImageResource(R.drawable.fat);
                return "Obesidade Moderada";
            } else {
                imagem.setImageResource(R.drawable.fat);
                return "Obesidade Mórbida";
            }
            break;
        case 1:
            if (imcValue < 19) {
                return "Abaixo do Peso";
            } else if (imcValue < 23.9) {
                return "Peso Normal";
            } else if (imcValue < 28.9) {
                return "Acima do Peso";
            } else if (imcValue < 38.9) {
                return "Obesidade Moderada";
            } else {
                return "Obesidade Mórbida";
            }
         break;
   }
}
private String解释imc(float imcValue){
imagem=(ImageView)findViewById(R.id.imageBody);
rgsexo=(放射组)findViewById(R.id.rgsexo);
int selectedId=rgsexo.getCheckedRadioButtonId();//获取id
查看单选按钮=r
private String interpretIMC(float imcValue) {           
    imagem = (ImageView)findViewById(R.id.imageBody);

    rgsexo = (RadioGroup)findViewById(R.id.rgSexo);
    int selectedId = rgsexo.getCheckedRadioButtonId();  // get the id
    View radioButton = radioButtonGroup.findViewById(radioButtonID);
    int idx = radioButtonGroup.indexOfChild(radioButton);

    switch (idx)   // switch on the button selected
    {
        case 0:
            if (imcValue < 20) {
                imagem.setImageResource(R.drawable.slim);
                return "Abaixo do Peso";
            } else if (imcValue < 24.9) {
                imagem.setImageResource(R.drawable.normal);
                return "Peso Normal";
            } else if (imcValue < 29.9) {
                imagem.setImageResource(R.drawable.fat);
                return "Acima do Peso";
            } else if (imcValue < 39.9) {
                imagem.setImageResource(R.drawable.fat);
                return "Obesidade Moderada";
            } else {
                imagem.setImageResource(R.drawable.fat);
                return "Obesidade Mórbida";
            }
            break;
        case 1:
            if (imcValue < 19) {
                return "Abaixo do Peso";
            } else if (imcValue < 23.9) {
                return "Peso Normal";
            } else if (imcValue < 28.9) {
                return "Acima do Peso";
            } else if (imcValue < 38.9) {
                return "Obesidade Moderada";
            } else {
                return "Obesidade Mórbida";
            }
         break;
   }
}