Pesquisar neste blog:

14/11/2019

IMC Índice de Massa Corporal (Versão 1.8)



Agradeço antecipadamente o PCNP Josafá Gabriel da Rocha da Diretoria de Ensino - Região de Botucatu pela parceria.

Para instalar em seu celular, basta acessar a Play Store: https://play.google.com/store/apps/details?id=com.gustavovanin.imc


Clique aqui para visualizar o código utilizado.


Esse foi o primeiro app que fizemos utilizando o Android Studio.  Se você é iniciante, deixaremos a ideia geral:

  • Download do "Android Studio" em  https://developer.android.com/studio (é grátis):
    • dúvidas na instalação ou na compilação do "Hello Word" acesse o próprio site do "Android Studio" que  possui vários tutorias https://developer.android.com/studio/intro
    • Pode ser que você tenha que modificar a BIOS de sua máquina para habilitar "VM" (Máquina Virtual); 
    • Caso queira que o Android Studio instale e rode o app que estiver criando em seu celular, você terá que habilitar, em seu celular, o modo desenvolvedor e a depuração usb.
  • Depois que desenvolver o seu aplicativo é necessário:
  • Ao inserir um novo APP na Play Store, preencha todas as informações fidedignas ao APP que você criou:
    • Aguarde aproximadamente 2 dias (a mensagem é de até 7 dias ou mais) para o APP ser aceito;
    • Atualizações da versão do APP costuma demorar aproximadamente duas horas para aprovação.
A última versão publicada está com o seguinte visual:


Um abraço,
Gustavo Vanin.
Josafá Rocha.

Clique aqui para visualizar o código utilizado.

Abaixo estão cada um dos arquivos do projeto.

Comentário para activity_main.xml (este é o arquivo para ajustar o layout do app):
"RelativeLayout" é conveniente para ajustar o tamanho nas janelas para diferentes dispositivos.
"ScrollView" é importante para habilitar uma barra de rolagem se o conteúdo não couber no dispositivo
"LinearLayout" é importante para agrupar verticalmente ou horizontalmente os botões, sendo que você pode colocar um "LinearLayout" dentro do outro.

app/res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    tools:context=".MainActivity">


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/fundo_aplicacao">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="10dp">


            <LinearLayout
                android:id="@+id/top_massa_altura"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="vertical">


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView_massa"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_margin="2dp"
                        android:layout_weight="1"
                        android:gravity="right"
                        android:text="Massa (kg)"
                        android:textColor="@android:color/black"
                        android:textSize="16dp"
                        android:textStyle="bold" />

                    <EditText
                        android:id="@+id/editText_massa"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_margin="2dp"
                        android:layout_weight="1"
                        android:ems="10"
                        android:gravity="left"
                        android:hint="Ex: 85.5"
                        android:inputType="numberDecimal" />


                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="horizontal">


                    <TextView
                        android:id="@+id/textView_altura"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_margin="2dp"
                        android:layout_weight="1"
                        android:gravity="right"
                        android:text="Altura (metros)"
                        android:textColor="@android:color/black"
                        android:textSize="16dp"
                        android:textStyle="bold" />

                    <EditText
                        android:id="@+id/editText_altura"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_margin="2dp"
                        android:layout_weight="1"
                        android:ems="10"
                        android:gravity="left"
                        android:hint="Ex: 1.75"
                        android:inputType="numberDecimal" />


                </LinearLayout>


            </LinearLayout>


            <LinearLayout
                android:id="@+id/tresBT"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/top_massa_altura"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:orientation="horizontal">


                <Button
                    android:id="@+id/button_calcular10_19"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="2dp"
                    android:layout_weight="1"
                    android:background="@drawable/botao_customizado"
                    android:gravity="center"
                    android:text="10 - 19 anos"
                    android:textColor="@android:color/white"
                    android:textStyle="bold"
                    android:visibility="visible" />

                <Button
                    android:id="@+id/button_calcular"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="2dp"
                    android:layout_weight="1"
                    android:background="@drawable/botao_customizado"
                    android:gravity="center"
                    android:text="20 - 59 anos"
                    android:textColor="@android:color/white"
                    android:textStyle="bold" />

                <Button
                    android:id="@+id/button_calcular60"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="2dp"
                    android:layout_weight="1"
                    android:background="@drawable/botao_customizado"
                    android:gravity="center"
                    android:text=">=60 anos"
                    android:textColor="@android:color/white"
                    android:textStyle="bold" />

            </LinearLayout>

            <TextView
                android:id="@+id/textView_resultado"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tresBT"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:text="                 "
                android:textSize="25dp" />


            <TextView
                android:id="@+id/textView_msg"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView_resultado"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="10dp"
                android:lines="5"
                android:text="Atenção: IMC é apenas um índice.\nPara uma análise completa procure um médico ou especialista.\nPessoas musculosas possuem IMC acima da média."
                android:textAlignment="center"
                android:textColor="@android:color/black"
                android:textSize="20dp" />

            <LinearLayout
                android:id="@+id/linearL_idadeHM"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/textView_msg"
                android:gravity="center"
                android:orientation="horizontal">


                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="3"
                    android:gravity="center"
                    android:orientation="vertical">

                    <SeekBar
                        android:id="@+id/seekBar_idade"
                        style="@style/Widget.AppCompat.SeekBar.Discrete"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/textView_msg"
                        android:max="10"
                        android:progress="3" />

                    <TextView
                        android:id="@+id/textView_idade"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="4dp"
                        android:text="TextView"
                        android:textColor="@android:color/black"
                        android:textSize="20dp"
                        android:visibility="invisible" />

                </LinearLayout>


                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical">

                    <Switch
                        android:id="@+id/switch_hm"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/textView_msg"
                        android:layout_toRightOf="@+id/seekBar_idade"
                        android:text="" />

                    <TextView
                        android:id="@+id/textView_HM"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="Homem"
                        android:textColor="@android:color/black"
                        android:textSize="20dp"
                        android:visibility="invisible" />
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/linearL_Blog"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/linearL_idadeHM"
                android:layout_marginTop="10dp"
                android:orientation="horizontal"
                android:visibility="invisible">

                <Button
                    android:id="@+id/button_blog"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/textView_HM"
                    android:layout_margin="2dp"
                    android:layout_marginBottom="16dp"
                    android:layout_weight="1"
                    android:background="@drawable/botao_blog"
                    android:onClick="goblog"
                    android:text="Blog"
                    android:textColor="@android:color/white"
                    android:textStyle="bold" />

                <Button
                    android:id="@+id/button_avaliarapp"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/textView_HM"
                    android:layout_margin="2dp"
                    android:layout_toRightOf="@+id/button_blog"
                    android:layout_weight="1"
                    android:background="@drawable/botao_customizado"
                    android:onClick="rateMe"
                    android:text="YouTube"
                    android:textColor="@android:color/white"
                    android:textStyle="bold"
                    android:visibility="visible" />
            </LinearLayout>

        </RelativeLayout>

    </ScrollView>
</RelativeLayout>




app/java/com.gustavovanin.imc/MainActivity.java
package com.gustavovanin.imc;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ShareCompat;
import java.text.NumberFormat;
import java.util.Locale;


public class MainActivity extends AppCompatActivity {
    private EditText massa;
    private EditText altura;
    private TextView resultado;
    private Button btcalc;
    private Button btcalc60;
    private Button btcalc10;
    private Button btblog;
    private Button btavaliar;
    private TextView mensagem;
    private SeekBar seekBar_idade;
    private TextView textView_idade;
    private Switch switch_hm;
    private TextView textView_HM;


    int min = 10, max = 19, current = 15;
    int sexo = 1;//homem

    private void closeKeyboard() {
        View view = this.getCurrentFocus();
        if (view != null) {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
        }

    }

    public void rateMe(View view) {
        try {
            startActivity(new Intent(Intent.ACTION_VIEW,
                    Uri.parse("https://www.youtube.com/profgustavo/?sub_confirmation=1")));
        } catch (ActivityNotFoundException e) {

        }
    }

    public void goblog(View view) {

        try {
            startActivity(new Intent(Intent.ACTION_VIEW,
                    Uri.parse("https://www.blogger.com/follow.g?view=FOLLOW&blogID=3203007864606427596")));
        } catch (ActivityNotFoundException e) {

        }
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //bloqueia app na vertical
        // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        massa = (EditText) findViewById(R.id.editText_massa);
        altura = (EditText) findViewById(R.id.editText_altura);
        resultado = (TextView) findViewById(R.id.textView_resultado);
        btcalc = (Button) findViewById(R.id.button_calcular);
        btcalc60 = (Button) findViewById(R.id.button_calcular60);
        btcalc10 = (Button) findViewById(R.id.button_calcular10_19);
        btblog = (Button) findViewById(R.id.button_blog);
        btavaliar = (Button) findViewById(R.id.button_avaliarapp);
        mensagem = (TextView) findViewById(R.id.textView_msg);
        seekBar_idade = (SeekBar) findViewById(R.id.seekBar_idade);
        switch_hm = (Switch) findViewById(R.id.switch_hm);
        textView_HM = (TextView) findViewById(R.id.textView_HM);
        textView_idade = (TextView) findViewById(R.id.textView_idade);


        switch_hm.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked == true) {
                    Toast.makeText(getBaseContext(), "Mulher", Toast.LENGTH_SHORT).show();
                    textView_HM.setText("Mulher");
                    sexo = 0;
                    atualizaIMC();
                    atualizaFeed(current, sexo);

                } else {
                    Toast.makeText(getBaseContext(), "Homem", Toast.LENGTH_SHORT).show();
                    textView_HM.setText("Homem");
                    sexo = 1;
                    atualizaIMC();
                    atualizaFeed(current, sexo);
                }
            }
        });


        seekBar_idade.setMax(max - min);
        seekBar_idade.setProgress(current - min);
        textView_idade.setText("Idade: " + current + " anos");

        seekBar_idade.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                current = progress + min;
                textView_idade.setText("Idade: " + current + " anos");
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

                atualizaFeed(current, sexo);

            }
        });


        grupoVisible(false);

//botão grupo 20 - 59 anos
        btcalc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                grupoVisible(false);

                String strmassa = massa.getText().toString();
                if (TextUtils.isEmpty(strmassa)) {
                    massa.setError("Qual é a sua massa em quilogramas? Ex: 80.5");
                    massa.requestFocus();
                    return;
                }
                String straltura = altura.getText().toString();
                if (TextUtils.isEmpty(straltura)) {
                    altura.setError("Qual é a sua altura em metros? Ex: 1.70");
                    altura.requestFocus();
                    return;
                }


                double massaDigitada = Double.parseDouble(massa.getText().toString());
                double alturaDigitada = Double.parseDouble(altura.getText().toString());

                int comp = Double.compare(alturaDigitada, 0);
                if (comp > 0) {
                    //System.out.println("d1 is greater than d2");
                } else if (comp < 0) {
                    //System.out.println("d1 is less than d2");
                } else {
                    //System.out.println("d1 is equal to d2");
                    altura.setError("Altura dever ser maior que zero.");
                    altura.requestFocus();
                    return;
                }

                double sum = atualizaIMC();

                double pmin = 18.5 * alturaDigitada * alturaDigitada;
                double pmax = 25 * alturaDigitada * alturaDigitada;
                double perder = massaDigitada - pmax;
                double ganhar = pmin - massaDigitada;

                if (Double.compare(sum, 18.4999999999) < 0) {
                    mensagem.setText(String.format("Resultado: abaixo do peso;\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: ganhar %3.2f kg.", pmin, pmax, ganhar));
                    resultado.setTextColor(Color.RED);
                } else if (Double.compare(sum, 25) < 0) {
                    mensagem.setText(String.format("Resultado: peso normal.\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;", pmin, pmax));
                    resultado.setTextColor(Color.rgb(0, 100, 0));
                } else if (Double.compare(sum, 30) < 0) {
                    mensagem.setText(String.format("Resultado: acima do peso;\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
                    resultado.setTextColor(0xFFF06D2F);
                } else if (Double.compare(sum, 35) < 0) {
                    mensagem.setText(String.format("Resultado: obesidade grau I;\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
                    resultado.setTextColor(Color.RED);
                } else if (Double.compare(sum, 40) < 0) {
                    mensagem.setText(String.format("Resultado: obesidade grau II;\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
                    resultado.setTextColor(Color.RED);
                } else if (Double.compare(sum, 40) > 0) {
                    mensagem.setText(String.format("Resultado: obesidade grau III;\nCategoria: entre 20 e 59 anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
                    resultado.setTextColor(Color.RED);
                }

                //ocultar teclado
                closeKeyboard();
            }
        });

//Botão do grupo 60 ou mais...
        btcalc60.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                grupoVisible(false);

                String strmassa = massa.getText().toString();
                if (TextUtils.isEmpty(strmassa)) {
                    massa.setError("Qual é a sua massa em quilogramas? Ex: 80.5");
                    massa.requestFocus();
                    return;
                }
                String straltura = altura.getText().toString();
                if (TextUtils.isEmpty(straltura)) {
                    altura.setError("Qual é a sua altura em metros? Ex: 1.70");
                    altura.requestFocus();
                    return;
                }


                double massaDigitada = Double.parseDouble(massa.getText().toString());
                double alturaDigitada = Double.parseDouble(altura.getText().toString());

                int comp = Double.compare(alturaDigitada, 0);
                if (comp > 0) {
                    //System.out.println("d1 is greater than d2");
                } else if (comp < 0) {
                    //System.out.println("d1 is less than d2");
                } else {
                    //System.out.println("d1 is equal to d2");
                    altura.setError("Altura dever ser maior que zero.");
                    altura.requestFocus();
                    return;
                }

                double sum = atualizaIMC();

                double pmin = 22 * alturaDigitada * alturaDigitada;
                double pmax = 27 * alturaDigitada * alturaDigitada;
                double perder = massaDigitada - pmax;
                double ganhar = pmin - massaDigitada;


                if (Double.compare(sum, 22) <= 0) {
                    mensagem.setText(String.format("Resultado: baixo peso;\nCategoria: 60 anos ou mais;\nFaixa ideal: %1.2f - %2.2f kg.\nAtingir referência: ganhar %3.2f kg.", pmin, pmax, ganhar));
                    resultado.setTextColor(Color.RED);
                } else if (Double.compare(sum, 27) < 0) {
                    mensagem.setText(String.format("Resultado: peso adequado;\nCategoria: 60 anos ou mais;\nFaixa ideal: %1.2f - %2.2f kg;", pmin, pmax));
                    resultado.setTextColor(Color.rgb(0, 100, 0));
                } else if (Double.compare(sum, 27) >= 0) {
                    mensagem.setText(String.format("Resultado: sobrepeso;\nCategoria: 60 anos ou mais;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
                    resultado.setTextColor(Color.RED);
                }

                //ocultar teclado
                closeKeyboard();

            }


        });

//botão do grupo 10 - 19
        btcalc10.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String strmassa = massa.getText().toString();
                if (TextUtils.isEmpty(strmassa)) {
                    massa.setError("Qual é a sua massa em quilogramas? Ex: 80.5");
                    massa.requestFocus();
                    return;
                }
                String straltura = altura.getText().toString();
                if (TextUtils.isEmpty(straltura)) {
                    altura.setError("Qual é a sua altura em metros? Ex: 1.70");
                    altura.requestFocus();
                    return;
                }
                grupoVisible(true);

                double massaDigitada = Double.parseDouble(massa.getText().toString());
                double alturaDigitada = Double.parseDouble(altura.getText().toString());

                int comp = Double.compare(alturaDigitada, 0);
                if (comp > 0) {
                    //System.out.println("d1 is greater than d2");
                } else if (comp < 0) {
                    //System.out.println("d1 is less than d2");
                } else {
                    //System.out.println("d1 is equal to d2");
                    altura.setError("Altura dever ser maior que zero.");
                    altura.requestFocus();
                    return;
                }

                double sum = atualizaIMC();

                //ocultar teclado
                closeKeyboard();
                atualizaFeed(current, sexo);
            }


        });


    }

    //menu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.my_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item1:
                Toast.makeText(this, "Compartilhar...", Toast.LENGTH_SHORT).show();

                try {
                    Intent shareIntent = new Intent(Intent.ACTION_SEND);
                    shareIntent.setType("text/plain");
                    shareIntent.putExtra(Intent.EXTRA_SUBJECT, "IMC Calculadora");
                    String shareMessage = "\nGostaria de recomendar este aplicativo\n\n";
                    shareMessage = shareMessage + "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID + "\n\n";
                    shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);
                    startActivity(Intent.createChooser(shareIntent, "Escolher um"));
                } catch (Exception e) {
                    //e.toString();
                }
                return true;

            case R.id.item5:
                Toast.makeText(this, "Avaliar...", Toast.LENGTH_SHORT).show();

                Uri uri = Uri.parse("market://details?id=" + BuildConfig.APPLICATION_ID);
                Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
                // To count with Play market backstack, After pressing back button,
                // to taken back to our application, we need to add following flags to intent.
                goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
                        Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
                        Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                try {
                    startActivity(goToMarket);
                } catch (ActivityNotFoundException e) {
                    startActivity(new Intent(Intent.ACTION_VIEW,
                            Uri.parse("http://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID)));
                }
                return true;

            case R.id.itemBlog:
                Toast.makeText(this, "Blog...", Toast.LENGTH_SHORT).show();
                View view1 = new View(this);
                goblog(view1);
                return true;

            case R.id.itemTube:
                Toast.makeText(this, "You Tube...", Toast.LENGTH_SHORT).show();
                View view2 = new View(this);
                rateMe(view2);
                return true;


        }


        return super.onOptionsItemSelected(item);
    }

    private void atualizaFeed(int idade, int sexo) {

        double massaDigitada = Double.parseDouble(massa.getText().toString());
        double alturaDigitada = Double.parseDouble(altura.getText().toString());
        double sum = massaDigitada / (alturaDigitada * alturaDigitada);
        resultado.setText(String.format("IMC: %.2f kg/m²", sum));

        double c1 = 0;
        double c2 = 0;

        if (idade == 10 && sexo == 0) {
            c1 = 14.23;
            c2 = 20.18;
        } else if (idade == 11 && sexo == 0) {
            c1 = 14.6;
            c2 = 21.17;
        } else if (idade == 12 && sexo == 0) {
            c1 = 14.98;
            c2 = 22.16;
        } else if (idade == 13 && sexo == 0) {
            c1 = 15.36;
            c2 = 23.07;
        } else if (idade == 14 && sexo == 0) {
            c1 = 15.67;
            c2 = 23.87;
        } else if (idade == 15 && sexo == 0) {
            c1 = 16.01;
            c2 = 24.28;
        } else if (idade == 16 && sexo == 0) {
            c1 = 16.37;
            c2 = 24.73;
        } else if (idade == 17 && sexo == 0) {
            c1 = 16.59;
            c2 = 25.22;
        } else if (idade == 18 && sexo == 0) {
            c1 = 16.71;
            c2 = 25.55;
        } else if (idade == 19 && sexo == 0) {
            c1 = 16.87;
            c2 = 25.84;
        } else if (idade == 10 && sexo == 1) {
            c1 = 14.42;
            c2 = 19.5;
        } else if (idade == 11 && sexo == 1) {
            c1 = 14.83;
            c2 = 20.34;
        } else if (idade == 12 && sexo == 1) {
            c1 = 15.24;
            c2 = 21.11;
        } else if (idade == 13 && sexo == 1) {
            c1 = 15.73;
            c2 = 21.92;
        } else if (idade == 14 && sexo == 1) {
            c1 = 16.18;
            c2 = 22.76;
        } else if (idade == 15 && sexo == 1) {
            c1 = 19.59;
            c2 = 23.62;
        } else if (idade == 16 && sexo == 1) {
            c1 = 17.01;
            c2 = 24.44;
        } else if (idade == 17 && sexo == 1) {
            c1 = 17.31;
            c2 = 25.27;
        } else if (idade == 18 && sexo == 1) {
            c1 = 17.54;
            c2 = 25.94;
        } else if (idade == 19 && sexo == 1) {
            c1 = 17.8;
            c2 = 26.35;
        }


        String texto = "";
        if (sexo == 0) {
            texto = "mulher";
        } else {
            texto = "homem";
        }
        ;

        double pmin = c1 * alturaDigitada * alturaDigitada;
        double pmax = c2 * alturaDigitada * alturaDigitada;
        double perder = massaDigitada - pmax;
        double ganhar = pmin - massaDigitada;

        if (Double.compare(sum, c1) < 0) {
            mensagem.setText(String.format("Resultado: baixo peso;\nCategoria: " + texto + " - " + idade + " anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: ganhar %3.2f kg.", pmin, pmax, ganhar));
            resultado.setTextColor(Color.RED);
        } else if (Double.compare(sum, c2) <= 0) {
            mensagem.setText(String.format("Resultado: peso adequado;\nCategoria: " + texto + " - " + idade + " anos;\nFaixa ideal: %1.2f - %2.2f kg;", pmin, pmax));
            resultado.setTextColor(Color.rgb(0, 100, 0));
        } else if (Double.compare(sum, c2) > 0) {
            mensagem.setText(String.format("Resultado: sobrepeso;\nCategoria: " + texto + " - " + idade + " anos;\nFaixa ideal: %1.2f - %2.2f kg;\nAtingir referência: perder %3.2f kg.", pmin, pmax, perder));
            resultado.setTextColor(Color.RED);
        }

    }


    //Calcula o IMC e retorna um valor double
    private double atualizaIMC() {

        double massaDigitada = Double.parseDouble(massa.getText().toString());
        double alturaDigitada = Double.parseDouble(altura.getText().toString());
        double sum = massaDigitada / (alturaDigitada * alturaDigitada);
        resultado.setText(String.format("IMC: %.2f kg/m²", sum));
        return sum;
    }

    //apagar e exibir comando para o grupo 10 - 19 anos.
    private void grupoVisible(boolean visivel) {

        if (visivel == false) {
            seekBar_idade.setVisibility(View.INVISIBLE);
            switch_hm.setVisibility(View.INVISIBLE);
            textView_idade.setVisibility(View.INVISIBLE);
            textView_HM.setVisibility(View.INVISIBLE);
        } else {
            seekBar_idade.setVisibility(View.VISIBLE);
            switch_hm.setVisibility(View.VISIBLE);
            textView_idade.setVisibility(View.VISIBLE);
            textView_HM.setVisibility(View.VISIBLE);
        }


    }


}

app/res/menu/my_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/item1"
        android:icon="@drawable/ic_share_menu"
        android:title="Compartilhar este APP"
        app:showAsAction="never">

    </item>

    <item
        android:id="@+id/item5"
        android:title="Avaliar este APP"
        app:showAsAction="never"></item>

    <item
        android:id="@+id/item3"
        android:title="Siga-nos"
        app:showAsAction="never">
        <menu>
            <item
                android:id="@+id/itemBlog"
                android:title="Blog Prof. Gustavo Vanin"
                app:showAsAction="never" />
            <item
                android:id="@+id/itemTube"
                android:title="Youtube Matemática e Informática"
                app:showAsAction="never" />
        </menu>
    </item>
</menu>

app/res/drawable/botao_customizado.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="5dp"></corners>

    <solid android:color="@android:color/holo_red_dark"></solid>

    <stroke
        android:width="2dp"
        android:color="@android:color/background_dark"></stroke>

    <gradient
        android:angle="315"
        android:endColor="@android:color/holo_red_light"
        android:startColor="@android:color/holo_red_dark"></gradient>

</shape>




Nenhum comentário:

Postar um comentário

SIGA-NOS