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运行结果展示
学习之路大家一起学习,谢谢。