开发前需要准备的一些概念及文档
首先搞搞清楚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小程序的雏形,基本就出现了。