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:
- Assinar seu app https://developer.android.com/studio/publish/app-signing?hl=pt-br. Guarde o arquivo ".jks" em lugar seguro, sem ele não será possível atualizar o seu APP no loja do Google Play;
- Pagar uma taxa única de $25.00 (aproximadamente R$100,00) para habilitar a sua conta de desenvolvedor no Google Play Console https://play.google.com/apps/publish/?hl=pt-BR .
- 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:
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.
<?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>
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); } } }
<?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>
<?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