在开始编码之前,我们需要先对程序进行需求分析,想一想简单计算器中应该具备哪些功能。将这些功能全部整理出来之后,我们才好动手去一一实现。这里我认为简单计算器中至少应该具备以下功能。
1. 页面布局。
2. 事件监听及实现计算。
虽然看上去只有二个主要的功能点,但如果想要全部实现这些功能却需要用到UI、数据存储、服务等技术,因此还是非常考验你的综合应用能力的。不过好在这些技术在前面的章节中我们全部都学习过了,只要你学得用心,相信完成这些功能对你来说并不难。
分析完了需求之后,接下来就要进行技术可行性分析了。首先需要考虑的一个问题就是,我们如何才能计算简单的计算题呢,这就靠我们的以前学习的算法啦,这里面主要运用算法,
我们可以翻阅以前的书本或者上网搜索我们需要的算法,这里我就不一一细解释了,后面写代码的时候再详细说明。
经过前面几章的学习,相信你已经可以非常熟练地使用Git了。本节依然是Git时间,这次我们将会把简单计算器的代码托管到GitHub上面。
GitHub是全球最大的代码托管网站,主要是借助Git来进行版本控制的。任何开源软件都可以免费地将代码提交到GitHub上,以零成本的代价进行代码托管。
上一节我们已经详细介绍了使用GitHub,本节不做详细说明。
从本节开始,我们就要真正地动手编码了,为了要让项目能够有更好的结构,这里需要在ymq.demo03包下建一个包,如图15所示。
图 15
我这个样式主要分为三部分:上 中 下 。
上是一个跑马灯,中是一个显示屏,下是一个按钮布局
在layout.main.xml中建立,让它出来我们满意设计模式:
3.1 上跑马灯演示
首先我们先建一个textview用来做跑马灯效果:欢迎使用简单计算器,祝您生活愉快
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:text="欢迎使用简单计算器,祝您生活愉快。欢迎使用简单计算器,祝您生活愉快" />
详见博客
3.2 中 显示屏
我们要建立一个EditText,使它能输入:
<EditText
android:text="TextView"
android:id="@+id/textView1"
android:textSize="25sp"
android:textColor="#000000"
android:layout_gravity="center"
android:gravity="left"
android:cursorVisible="false"
android:editable = "false"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:layout_marginTop="4dip" android:layout_weight="1.5">
EditText>
3.3 下 按钮布局 一共6排 21个按钮
代码如下
<LinearLayout
android:id="@+id/linearlayout02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:layout_width="50dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:id="@+id/buttonc" android:text="@string/shan">
Button>
<Button
android:layout_width="50dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:id="@+id/buttonce" android:text="@string/shanchu">
Button>
LinearLayout>
<TableRow
android:id="@+id/row0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<Button
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:text="@string/one" android:id="@+id/button1">
Button>
<Button
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:text="@string/two" android:id="@+id/button2">
Button>
<Button
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:text="@string/three" android:id="@+id/button3">
Button>
<Button
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:textSize="25sp" android:text="@string/jia" android:id="@+id/button01">
Button>
TableRow>
<TableRow
android:id="@+id/row1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<Button
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_weight="1"