Redes Sociais
 Telegram  YouTube
Calculadora para IMC feita em Kotlin
14 de novembro de 2019

Nesse tutorial vou descrever uma Calculadora para IMC feita em Kotlin assim você vai poder checar como você está de acordo com seu peso e altura.

Se você deseja um aplicativo para calcular o IMC clique no botão abaixo.

Vamos então entender como chegamos no cálculo do IMC.

IMC = p / a²

Que é peso em kg dividido por altura em metros ao quadrado.

Primeiramente vamos criar um projeto vazio(Empty) e fazer as mudanças para o nosso projeto.

Se você não souber como criar um projeto vazio então veja o tutorial Como criar um projeto no Android Studio.

Logo depois de ter criado o projeto vamos inserir a biblioteca do material design.

Se você não sabe como fazer isso então veja o tutorial Como usar o material design em kotlin.

Então chegou a hora de começar a fazer as mudanças no nosso projeto vamos assim modificar o arquivo activity_main e deixar como o seguinte.

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity"
    android:layout_margin="20dp">
    <TextView
        android:id="@+id/tvTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cálculo do IMC"
        android:textSize="30sp"
        android:textColor="#000"
        android:layout_marginTop="30dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/layEtPeso"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Digite o peso em Kg:"
        android:layout_marginTop="30dp"
        app:layout_constraintTop_toBottomOf="@id/tvTitle" >
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/etPeso"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"/>
    </com.google.android.material.textfield.TextInputLayout>
    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/layEtAltura"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Digite a altura em metros:"
        app:layout_constraintTop_toBottomOf="@id/layEtPeso" >
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/etAltura"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"/>
    </com.google.android.material.textfield.TextInputLayout>
    <Button
        android:id="@+id/btnCalc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Calcular"
        app:layout_constraintTop_toBottomOf="@+id/layEtAltura"/>
    <TextView
        android:id="@+id/tvResp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="20sp"
        app:layout_constraintTop_toBottomOf="@+id/btnCalc"
        app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Logo após modificar o activity_main vamos fazer a programação em kotlin no arquivo MainActivity deixando assim como o seguinte.

MainActivity

package br.com.uware.imc

import android.content.Context
import android.icu.text.DecimalFormat
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnCalc.setOnClickListener {
            if(etPeso.text.toString() != "" && etAltura.text.toString() != "" ) {
                val imc = calcIMC(etPeso.text.toString(), etAltura.text.toString())
                // Seta decimal em apenas 2 casas
                val df = DecimalFormat("#.00")
                val imcResp = "IMC: " + df.format(imc) + "\n" + checkIMC(imc)
                tvResp.text = imcResp
            }
            else{
                tvResp.text = "Valores nulos."
            }
            it.hideKeyboard()
        }
    }
    // Cálculo do IMC
    private fun calcIMC(peso: String, altura: String): Double  = peso.toDouble() / (altura.toDouble() * altura.toDouble())
    // Retorna string de acordo com o cálculo
    private fun checkIMC(db: Double): String{
        return when(db) {
            in 0..17 -> "Muito abaixo do peso."
            in 17.1..18.49 -> "Abaixo do peso."
            in 18.5..24.99 -> "Peso normal."
            in 25.0..29.99 ->  "Acima do peso."
            in 30.0..34.99 -> "Obesidade I."
            in 35.0..39.99 -> "Obesidade II(severa)."
            else -> "Obesidade III(mórbida)."
        }
    }
    fun View.hideKeyboard() {
        val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(windowToken, 0)
    }
}

Agora vamos compilar e executar nosso projeto para então clacular o nosso IMC.

Enfim espero poder ter ajudado com mais esse tutorial sobre Calculadora para IMC feita em Kotlin.

Visite e siga nosso canal no YouTube para ajudar no crescimento do site.

Fonte: http://www.calculoimc.com.br/tabela-de-imc/





Autor: Rodrigo Leutz

Desenvolvedor Web e Android ( Kotlin e Java )


Como usar ViewBinding ao invés de Android Extensions em Kotlin

Nesse tutorial vou demonstrar como usar ViewBinding ao invés de Android Extensions em Kotlin e assim deixar seu aplicativo[...]

6 de dezembro de 2020

Começando a programar na linguagem Kotlin – Parte 5

Nesse tutorial Começando a programar na linguagem Kotlin – Parte 5 vamos ver strings e intervalos para que assim seja possível entrar em laços.[...]

7 de fevereiro de 2020

Vídeo 11: Pegar endereço com o CEP Kotlin

Nesse Vídeo 11: Pegar endereço com o CEP Kotlin vou descrever como fazer a parte da programação assim você vai imprimir o endereço na tela.[...]

4 de janeiro de 2020