android计算器设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

android计算器设计本人学习android有一个多月了,在学习期间为了对所学的知识进行应用,因而设计了一个简单的计算器,现在通过本文与大家一起分享。由于本人水平有限,因此设计的计算器可能有着一部分的BUG,如发现BUG请联系我,谢谢!QQ:4740279151.界面的设计1.1应用程序图标的设计每一个应用程序,我们都要设计一个图标,可以说图标是应用程序的名片,好的图标能够很快地吸引用户。关于如何设计图标,在网上可以查询相关文件进行学习,在这不多做讲述,本人在网上寻找了一个图标作为计算器应用的图标,图标如下所示。由于不同的android手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置,如下图所示。drawable-hdpi中放置分辨率最高的图标,drawable-ldpi中放置分辨率中等的图标,drawable-hdpi中放置分辨率最低的图标。图标图片大小的要求如下:在AndroidManifest.xml文件中进行修改,修改情况如下:applicationandroid:icon=@drawable/calculatorandroid:label=@string/app_name其他设置保持不变。在value中的String.xml中加入app_name,代码为:stringname=app_name计算器/string。结果如下图所示:1.2按钮放置以及界面编排界面设计应该尽量简洁而美观,应该具有良好的交互性。因本人水平有限,所以设计的界面不是很完美,望请见谅。最终设计的计算器界面情况如下所示:整个界面的布局为LinearLayout,按钮的布局为TableLayout。另外需要对EditText和Button的一些属性进行相关设置,以使得它们满足我们的需要。在这直接给出main.xml中的代码,代码如下所示:?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:background=#880000android:paddingTop=50pxEditTextandroid:id=@+id/editTextandroid:gravity=leftandroid:text=android:textSize=37pxandroid:layout_height=150pxandroid:layout_width=fill_parentandroid:layout_marginBottom=20pxandroid:layout_marginLeft=10pxandroid:layout_marginRight=10pxandroid:editable=falseandroid:cursorVisible=false/EditTextEditTextandroid:id=@+id/editText1android:gravity=leftandroid:text=android:textSize=40pxandroid:layout_height=80pxandroid:layout_width=fill_parentandroid:layout_marginBottom=30pxandroid:layout_marginLeft=10pxandroid:layout_marginRight=10pxandroid:editable=falseandroid:cursorVisible=falseandroid:focusable=false/EditTextTableLayoutandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:stretchColumns=0,1,2,3,4TableRowButtonandroid:id=@+id/buttom7android:layout_margin=3pxandroid:text=7android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom8android:layout_margin=3pxandroid:text=8android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom9android:layout_margin=3pxandroid:text=9android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom10android:layout_margin=3pxandroid:text=ONandroid:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom11android:layout_margin=3pxandroid:text=OFFandroid:textSize=40pxandroid:focusable=false//TableRowTableRowButtonandroid:id=@+id/buttom4android:layout_margin=3pxandroid:text=4android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom5android:layout_margin=3pxandroid:text=5android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom6android:layout_margin=3pxandroid:text=6android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom12android:layout_margin=3pxandroid:text=+android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom13android:layout_margin=3pxandroid:text=-android:textSize=40pxandroid:focusable=false//TableRowTableRowButtonandroid:id=@+id/buttom1android:layout_margin=3pxandroid:text=1android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom2android:layout_margin=3pxandroid:text=2android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom3android:layout_margin=3pxandroid:text=3android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom14android:layout_margin=3pxandroid:text=×android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom15android:layout_margin=3pxandroid:text=÷android:textSize=40pxandroid:focusable=false//TableRowTableRowButtonandroid:id=@+id/buttom0android:layout_margin=3pxandroid:text=0android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom16android:layout_margin=3pxandroid:text=.android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom17android:layout_margin=3pxandroid:text==android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttombackandroid:layout_margin=3pxandroid:text=←android:textSize=40pxandroid:focusable=false/Buttonandroid:id=@+id/buttom18android:layout_margin=3pxandroid:text=Candroid:textSize=40pxandroid:focusable=false//TableRow/TableLayout/LinearLayout若对相关控件的属性不够熟悉的话,可自行查阅相关文献。2.设计思想2.1整体思想在整个过程中,首先应该对输入进行容错处理,这样有利于提高用户体验。对于用户的按键输入,需要及时地显示在第一个EditView中。在EditView中显示的是一个字符串,用户每输入一个操作,字符串发生相应改变,然后在EditView中反映出来。接着便是对第一个EditView中的字符串进行处理。通过程序设计,可以将字符串中的数据和操作符分别存在两个栈中。然后需要设计算法处理两个栈,通过算法得出字符串表达式的运算结果,再将运算结果反映在第二个EditView中的字符串中。(注:数据和操作符也可以储存在队列中,实际上储存在队列中更为合理。)2.2容错处理用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行容错处理。容错设计比如:在输入过程中小数的话只能有一个小数点,操作符不能连续输入,整数数据的开头不能出现0等等。在设计的应用程序中,设计了几个标记flag,每按下一个按键,若是按键是合理的话,都会引起标记flag的改变。标记flag将会限制接下来的输入是否有效,无效则不做任何处理。flag0=0:处理0的输出,为1则表示数字的开头有一个0。当flag0=1时,不能再输入0,当再输入数字或者操作符时,flag0重新置0。flag1=0:处理0的输出,每个数字开头的标志数值为0表示为数字开头。当flag1=0时,如果先输入0再输入1的话,前面的0自动消除。还有当flag1=0时,不能输入小数点等等。flag2=0:处理小数点,一个数字最多只能有一个小数点。当数字中有小数点时,flag2变为1,此后不能再输入小数点,输入操作符等操作后,flag2又变为0。flag3=0:处理运算符的输出。很明显不能连续输入操作符,用此标志,来限制连续操作符的输入。flag4=0:处理ON/OFF问题。当OFF之后,flag变为1,只

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功