Android之简单的BMI计算器app

BMI计算器介绍

身体质量指数(BMI,Body Mass Index)是国际上常用的衡量人体肥胖程度和是否健康的重要标准,主要用于统计分析。肥胖程度的判断不能采用体重的绝对值,它天然与身高有关。

这是用一个界面的BMI计算器

计算公式

体重指数BMI=体重/身高的平方(国际单位kg/㎡)
BMI=weight/height*height

参考标准

BMI 分类 中国参考标准
偏瘦 <18.5
正常 18.5~23.9
超重 ≥24
偏胖 24~26.9
肥胖 27~29.9
重度肥胖 ≥30

BMI界面设计
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/content_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:text="   身高(米):" />

    <EditText
        android:id="@+id/height"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入身高:" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:text="   体重(公斤):" />

    <EditText
        android:id="@+id/weight"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入体重:" />

    <TextView
        android:id="@+id/Text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:layout_margin="10dp"
        android:text="您的BMI为 :" />
    <TextView
        android:id="@+id/Text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4" />
    <TextView
        android:id="@+id/Text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:layout_margin="10dp"
        android:text="身体状态 :" />
    <TextView
        android:id="@+id/Text4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textColor="#03A9F4" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:layout_margin="30dp"
        android:text="计算体质指数" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textSize="24sp"
        android:textColor="#03A9F4"
        android:text="         清   除        " />
</LinearLayout>



我用的是线性布局管理器,简单介绍一些属性

android:textSize=“24sp” //设置字体大小
android:textColor="#03A9F4" //设置字体颜色
android:layout_margin=“30dp” //设置控件的外边距为30dp
android:layout_gravity=“center_horizontal” //设置控件水平居中

界面展示效果:
界面展示
Main_Activity.java

package com.example.s18_2;  //项目包名

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;  //导包
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.text.DecimalFormat;

public class MainActivity extends AppCompatActivity {
    Button button1, button2;
    EditText heightText, weightText;
    TextView BMIText, classificationText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);   
        button1 = findViewById(R.id.button);
        button2 = findViewById(R.id.button2);
        heightText = findViewById(R.id.height);
        weightText = findViewById(R.id.weight);
        BMIText = findViewById(R.id.Text2);
        classificationText = findViewById(R.id.Text4);
        //计算结果按键
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DecimalFormat nf = new DecimalFormat("0.00");  //保留两位小数点
                double weight, height, BMI;
                weight = Double.parseDouble(weightText.getText().toString());
                height = Double.parseDouble(heightText.getText().toString());
                BMI = weight / (height * height);   //计算公式
                BMIText.setText(nf.format(BMI));
                if (BMI < 20) {
                    classificationText.setText("偏瘦,多吃点东西");
                } else if (BMI > 25) {
                    classificationText.setText("超重,少吃点东西");
                } else {
                    classificationText.setText("正常,继续保持");
                }
            }
        });
        //清除控件里的内容
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                weightText.setText("");
                heightText.setText("");
                BMIText.setText("");
                classificationText.setText("");
            }
        });
    }
}

Run运行结果展示
结果展示
学习之路大家一起学习,谢谢。

发布了4 篇原创文章 · 获赞 5 · 访问量 414

猜你喜欢

转载自blog.csdn.net/qq_45844792/article/details/105033079