Android学习之BMI1.0

本文介绍了一个简单的BMI计算器的设计过程,包括概念解析、界面布局与代码实现等步骤,旨在帮助读者理解BMI计算原理及其应用。

开发前需要准备的一些概念及文档

首先搞搞清楚BMI是什么概念,BMI指的是身体质量指数,简称体质指数又称体重指数,英文为Body Mass Index,简称BMI。是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。主要用于统计用途,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。

通过BMI的概念知道,要计算一个人的BMI值,首先要知道其身高和体重。下面对程序做一个简单的设计:

1.需要四个TextView,分别用于提示输入:身高,体重,BMI值和BMI值对应的建议信息

2.两个EditText,分别用于输入:身高和体重

3.一个Button,用于相应事件,获取身高和体重计算BMI值并将其显示出来

4.BMI值计算的算法:体重/身高*身高,当BMI值大于25时,小于20及在此之间时分别提示不同的建议信息

根据以上的分析信息,首先要完成的是string.xml文件:

<resources>

    <string name="app_name">BMI</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="tv1">身高(cm)</string>
    <string name="tv2">体重(kg)</string>
    <string name="tt1">输入身高</string>
    <string name="tt2">输入体重</string>
    <string name="bt1">BMI</string>

    <string name="advice_heavy">你该节食了!</string>
    <string name="advice_average">体型很棒哦,注意保持哟!</string>
    <string name="advice_light">要多吃点啦!!</string>
</resources>

然后接下来要完成的是界面的布局activity_main.xml:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

       <TextView 
        android:id="@+id/tv1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
	android:text="@string/tv1"
        />
    <EditText 
        android:id="@+id/tt1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/tt1"
	android:inputType="number"        
        />
      <TextView 
        android:id="@+id/tv2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/tv2"
        />
	<EditText 
	    android:id="@+id/tt2"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"	    
	    android:hint="@string/tt2"
	    android:inputType="number"
	    />
	<Button 
	    android:id="@+id/bt1"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:gravity="center"
	    android:text="@string/bt1"
	    />
	<TextView 
	    android:id="@+id/tv3"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    />
   
        <TextView 
	    android:id="@+id/tv4"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    />
   
</LinearLayout>

 最后完成代码的书写:

package pz.softchen;

import java.text.DecimalFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	/**
	 * 点击Button按钮,获取输入框中的数据
	 * 通过BMI算法获取BMI值,并显示出BMI根据BMI所对应
	 * 的值,给出相应的建议,并显示出来
	 * */
    private double height = 0;
    private double weight = 0;
    private EditText tt1 = null;
    private EditText tt2 = null;
    private Button bt1 = null;
    private TextView bmi_Result = null;
    private TextView bmi_Suggest = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //获取Button按钮
        bt1 = (Button)findViewById(R.id.bt1);
        //添加按钮事件
        bt1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {

				//获取输入身高的控件
				tt1 = (EditText)findViewById(R.id.tt1);
				//获取输入体重的控件
				tt2 = (EditText)findViewById(R.id.tt2);
				
				DecimalFormat df = new DecimalFormat("0.0");
				//获取身高
				height = Double.parseDouble(tt1.getText().toString())/100;
				//获取体重
				weight = Double.parseDouble(tt2.getText().toString());
				
				//计算BMI的值
				double BMI = weight/(height*height);
				
				//获取显示BMI结果的TextView
				bmi_Result = (TextView)findViewById(R.id.tv3);
				
				bmi_Result.setText("your BMI is:" + df.format(BMI));
				
				//获取用于显示建议的TextView
				bmi_Suggest = (TextView)findViewById(R.id.tv4);
				//根据BMI结果值,选择应该提示的建议
				if(BMI > 25){
					bmi_Suggest.setText(R.string.advice_heavy);
					
				}else if(BMI < 20){
					bmi_Suggest.setText(R.string.advice_light);
				}else{
					bmi_Suggest.setText(R.string.advice_average);
				}
			}
		});
    }
    
}

运行之后输入身高,体重后,点击按钮就会得到相应的提示信息。

自此BMI小程序的雏形,基本就出现了。

 

 

 

 

 

转载于:https://my.oschina.net/pzsoftchen/blog/69639

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值