《Android入门程序开发—BMI计算器.docx》由会员分享,可在线阅读,更多相关《Android入门程序开发—BMI计算器.docx(7页珍藏版)》请在第一文库网上搜索。
1、Android入门程序开发BMI计算器作者:董明华李宏伟来源:电脑知识与技术2017年第35期摘要:AndrOidStUdio已经代替了Ec1ipse,成为AndrOid官方集成开发工具。文章基于AndrOidSIUdiO设计了一款身高体重计算器,通过介绍常见布局控件的用法,使初学者能够快速入门AndroidAPP开发,了解APP界面设计,用户输入值的获取等知识。关键词:AndroidS1udio;BMI;APP中图分类号:TP311文献标识码:A文章编号:1009-3044(2017)35-0136-031背景BMI指数,即身体质量指数,是用体重公斤数除以身高米数平方得出的数字,是目前国际上
2、常用的衡量人体胖瘦程度以及是否健康的一个标准。体质指数(BM1)=体重(kg)+身高人2(m)o文章根据BMI指数开发一款简易身高体重计算器,通过分析用户的身高体重值,判断其身材是否标准。2APP展示最终APP效果如图1所示,用户输入身高体重值后,通过单击计算按钮,可得出身体辟瘦程度的一个提示。3知识点分析项目涉及知识点较为简单,界面布局为1inear1ayout,控件为EditTeXt和BUgn,java源代码部分主要是控件的初始化,取得文本输入框的输入值,并转换为数值类型,然后计算出BMI指数值,并通过ToaSt给出提示。4界面设计界面从上向下依次为身高输入框、体重输入框和按钮,输入框对应
3、Android中的Edi1TeX1控件,按钮对应BU1tOn控件,垂直排列的布局适合用线性布局1inear1ayOUI。布局主要作用是设置控件在屏幕上的位置,线性布局1inear1ayOUt可以让其中的控件水平排列或者垂直排列。首先,在res/1ayout文件夹中找到自动生成的布局文件activity_main.xm1。在此文件中声明父布局1inear1ayout的排版方向为垂直排列,通过设置android:orientation的属性值为vertica1实现。android:1ayout_width=match_parcntandroid:1ayout_height=match_parent
4、android:orientation=,vertica1其次,设置文本输入框EditTeX1的宽填满父布局,高自适应,并通过android:him属性设置提示语,提示语定义在res/va1ues/strings.xm1文件中。android:id=+id/heightandroid:1ayout_width=match_parentandroid:1ayout_hcight=wrap_contentandroid:hint=string/heighthint7StringS.xm1中提示语定义格式如下所示,提示语内容需要根据项目要求设置,BM1指数对应体重单位kg,身高单位m。BMI请输入您
5、的身高,单位:m请输入您的体重,单位:kg最后,完成计算按钮部分。按钮有两个属性需要设置,一是设置按钮水平居中的属性android:1ayout_gravity,属性值为ccnter_horizonta1;二是注册按钮事件监听属性android:onC1ick,属性值由开发人员自定义一个方法名。假设自定义的方法名为ComP1Ite,那么在对应的java源文件中必须自定义一个如下形式的方法:pub1icvoidcompute(Viewview)5java源代码实现创建BMI对应Modu1e的时候,自动在src文件夹中生成MainACtiVityJava源文件,并实现Activity的OnCrea
6、te生命周期方法。在BM1项目中,java源代码主要工作包括初始化文本输入框控件,实现按钮事件监听器注册方法,获取文本输入框的输入值并转换为数值类型,计算BMI指数并给出提示等,下面对这些功能依次进行讲解。5.1 初始化EditTeXt首先,在MainActivity中声明EditTeXt成员变量。EditTextheightEditText,WeightEditText;然后,在OnCreate方法中通过findViewById方法初始化控件。HeightEditText=(EditText)findViewBy1d(R.id.height);WeightEditText=(EditText
7、)HndViewById(R.id.weight);其中,R.id.height表示身高输入框的id是height,这是由布局文件中的id值决定的,android:id=+id/heighto需要注意的是,控件的初始化需要在SetContentVieW(R.1ayout.XXX)之后,SetContentView方法指定当前java源文件对应的布局文件,只有在指定的布局文件中存在某个控件,已知此控件的id值,才可以通过上述方法进行初始化工作。5.2 Button事件监听器处理方法按钮的事件监听器注册有多种处理方法,如果布局文件中已经通过android:OnC1iek=ComPUte”指定了当前
8、按钮的事件监听器处理方法,则在对应的java源代码文件中必须实现此方法。具体实现方式为定义一个方法,方法名必须和android:OnC1iek的属性值一致,方法修饰符必须是PUb1ic,返回值是VOid,形参只有一个VieW类型。pub1icvoidcompute(Viewview).定义了上述方法后,只要用户单击了按钮,就会回调此方法。5.3 获取EditText输入值获取Edi1TeXI输入值必须在EdiITeXt初始化之后,同时注意获取时机,本项目在用户单击计算按钮的时候才获取输入值。下面以获取用户身高值为例,讲解其获取步骤,获取体重值采用同样的步骤C1)调用EditTeXt对象的get
9、Text()方法获取Editab1C对象。Editab1eeditab1e=heightEditTex1.getText();2)把Editab1e对象转换为字符串类型。hcightString=editab1c.toString();上述两步操作经常合为一步执行。heightString=heightEditText.getText().toString();3)根据项目要求把字符串转换为其他数据类型,本项目设置成doub1e数据类型,通过调用包装类的ParSeXXX方法把字符串转换为基本数据类型。doub1eHeightDoub1e=Doub1e.parseDoub1e(heightStr
10、ing);5.4 计算BM1指数获取到用户输入的身高体重值后,就可以计算BMI指数值了。BM1指数值为体重除以身高的平方,需要注意体重单位kg,身高单位m。为了计算的方便,设置BM1值小于18.5时,表示体型偏瘦,大于23.9时偏胖,在两者之间表示体型标准。doub1eresu1t=heightDoub1e/(weightDoub1e*weightDoub1e);if(resu1t23.9)消息提示e1seif(resu1t18.5)消息提示e1se消息提示)5.5 消息提示TOaSt是AndrOid中用来显示信息的一种机制,主要用于向用户显示提示消息。和DiaIog不一样的是,TOaSt是没
11、有焦点的,而且TOaSt显示的时间有限,过一定的时间就会自动消失。Toast的创建步骤如下所述:1)调用静态方法makeText创建Toast对象。Toasttoast=Toast.makeText(Contextcontext,CharSequencetext,intduration);方法接收三个形参。第一个参数COnteXt表示消息提示在哪个ACtiVity中,一般用this表明在当前AC1iVity中;第二个参数CharSeqUenCe代表提示语内容,接收字符串数据类型;第三个参数int表示消息显示时长,系统提供了两个值,Toast.1ENGTH_SHORTftToast.1ENGTH
12、.1ONG,分别表示短时间显示和长时间显示。2)调用ToaSI对象的ShoW方法显示消息。toast.show();以上两个步骤经常合成一步。Toast.makeText(this,text,Toast.1ENGTH_SHORT).show();6代码优化6.1 控件初始化优化本项目比较简单,控件只有两个EdiITeXI需要初始化,直接在OnCreaIe方法中操作也显得清晰C如果控件的初始化操作较多,OnCreate方法就会显得臃肿,此时建议自定义初始化控件方法,在Onereate中调用自定义方法。privatevoidinitViews()heightEditText=(EditText)f
13、indViewBy1d(R.id.height);WeightEditText=(EditText)findViewBy1d(R.id.weight);6.2 消息显示优化上述计算BM1指数中,要写三次ToaSt提示代码,而常用的BMI指数分为五六种情形,有没有一种方式可以简化消息显示代码呢?分析TOaSt提示代码,除了提示语不同外,其他代码完全相同,因而可以把消息显示代码封装为一个方法,接收一个消息提示语参数。pub1icvoidshow(Stringtext)Toast.makeText(this,text,Toast.1ENGTH_SHORT).show();需要用到消息显示的时候,调用
14、ShoW方法,传入一个提示语即可。6.3 BM1数值计算优化按钮监听方法中大量代码被用来求解BM1数值,可以把这部分代码封装到一个单独的方法中,用来计算BM1数值。pub1icdoub1egctBMI()heightstring=heightEditText.getText().toString();WeightString=weightEditText.getText().toString();hcightDoub1e=Doub1e.parseDoub1e(HcightString);WeightDoub1e=Doub1e.parseDoub1e(weightString);resu1t=hcightDoub1e/(WeightDoub1e*WeightDoub1e);returnresu1t;7结束语APP的开发主要分为界面设计和java源代码实现两个部分,采用的是MVC设计模式。应用开发完成后,需要通过测试发现bug并加以改正。只有经过大量的开发实战,才可以快速发现bug并改正。参考文献:1刘剑桥.基于AndrOid的房贷计算器开发与测试J电脑编程技巧与维护,2016(5).吴立勇,丁作文.基于Android系统的手机计算器的设计与实现J.电子技术,2014(4).刘正.Android项目驱动式开发教程M.北京:机械工业出版社,2014.