简易计算器设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自定义边框(border.xml)
引用边框文件
设置边距 设置边框大小 设置边框颜色
网增了一种网格布局(GridLayout),该布局 吸纳了线性布局、表格布局、相对布局的一些优点。它把整个容器划分 成rows行columns列个网格,每个网格可以放置一个控件,除此之外 可以设置一个控件横跨多少列、纵跨多少行,以及控件的摆放方向,是 一行行排列,还是一列列摆放。
直,默认是水平的即按行排列,如果不指定包含多少列,则网格布局只 包含一行,类似于水平的线性布局,如果指定包含多少列,则会根据列 来自动换行;如果是按列排列,则需要指定网格布局中包含多少行,否 则只有一列,类似于垂直的线性布局,如果指定包含多少行,则会根据 行来自动换列; android:layout_row:设置该控件所在网格行的序号; android:layout_rowSpan:设置该控件纵跨多少行; android:layout_column:设置该控件所在网格列的序号; android:layout_columnSpan:设置该控件横跨多少列;
本例中,仅简单实现加、减、乘、除、取余、退格和清空等功能, 单击“←”按钮实现退格功能,将刚刚输入的数字消除,单击“C”按 钮实现清空功能,一切恢复原状。此外,在执行计算过程中,还需处理 多次单击操作符、多次单击小数点、多次单击0等特殊情况。
用户单击按钮
简 易 计 算 器 业 务 流 程
是
是否第一 次单击
由于大部分按钮都是规则的,并且整体按照行列的形式摆放,因此可 考虑采用表格布局,而表格布局中不允许控件跨行,因此需要嵌套其它 布局管理器。根据最后两行的特点,选择相对布局比较方便,因此可采 用在表格布局中嵌入一个相对布局来实现计算器界面设计。
关键代码
自定义按钮样式
按钮属性设置
引用样式 按钮文字
关键代码
将数字拼接到 原有数字之后 是
是否第一次 单击操作符
否
按钮为true
是 等号无效
是否
为等号
否
标记上次是否 为数字按钮为 false,是否第一 次单击操作符 为false,记录 操作符
是否 为等号
是
计算结果并显 示,运算结束。 是否第一次单击
标记为true
否
计算上次操作 结果并显示, 同时标记上次 是否为数字按 钮为false,是否 第一次单击操 作符为false,
本章案例效果分析
一个文本编辑框单独占一行 规则的四行五列
相对布局 整体采用表格布局,内部嵌套相对布局
界面分析
界面中包含一个文本编辑框(EditText)、28个按钮(Button), 文本编辑框单独占一行,宽度为填充父容器、高度为内容包裹,边距为 10dp,颜色为#770000ff,不可编辑,包含边框。28个按钮中26个按 钮的高度为50dp,宽度为60dp,“=”按钮高度为100dp,宽度为 60dp,“0”按钮的高度为50dp,宽度为120dp。所有按钮的文本大小 为20sp,对齐方式为居中。(特殊符号:←、√、±)
③ 分别为数字按钮和运算符按钮设计单击事件处理方法。
课后思考题
思考
1. 本例通过表格布局和相对布局综合使用来实现计算器界 面,能不能通过其他布局的组合方式来实现呢?请自行 尝试实现。
2. 为了使每一行的内容水平居中,在<TableRow>标签中 设置了 android:gravity="center_horizontal",能 不能通过在<TableLayout>标签中设置 android:gravity="center_horizontal",达到同样效 果?如果不能,请说明理由。
记录操作符
简易计算器开发步骤
① 为相关数字按钮和操作符按钮添加id属性; ② 在Activity中,调用findViewById()方法根据id找到这些控件,同时为
这些控件注册单击事件监听器,本例中按钮较多可以将数字按钮放在 一个数组中,将操作符按钮放在一个数组中,通过循环遍历为其注册 事件监听器;
注意:由于网格布局是Android4.0中新增的布局,因此需
要在AndroidManifest.xml文件中将最低版本设置为14, android:minSdkVersion="14"。
网格布局(GridLayout)
android:rowCount:设置网格布局一共有多少行; android:columnCount:设置网格布局一共有多少列; android:orientation:设置网格布局中控件的排列方向,水平还是垂
简易计算器业务分析
计算器界面中的按钮可以大致分为两类:数字按钮和运算符按钮。 如果是数字按钮则要将其转换成数字,并且可以多次单击数字按钮,将 多个数字组成一个数,例如分别单击数字1、4、6按钮最后形成的数应 该是146而不是用后面的取代前面的,结果为6。如果是运算符按钮则 表明前一个数已经完成,接下来的数字形成一个新的数,当单击“=” 按钮时则在文本编辑框中显示表达式以及结果。
否
是否为 是 数字按钮 否
是
上一次是否 为数字按钮
否
这一次是否 为数字按钮
否
用该数字替换 默认的0,是 否第一次单击
操作无效, 是否第一次 单击标记仍 是
这一次是否 为数字按钮
否
标记为
为true
false,上一
是
生成一个新的 数,标记上一 次是否为数字
替换上次的 操作符
次是否为数字 按钮标记为 true。
引用边框文件
设置边距 设置边框大小 设置边框颜色
网增了一种网格布局(GridLayout),该布局 吸纳了线性布局、表格布局、相对布局的一些优点。它把整个容器划分 成rows行columns列个网格,每个网格可以放置一个控件,除此之外 可以设置一个控件横跨多少列、纵跨多少行,以及控件的摆放方向,是 一行行排列,还是一列列摆放。
直,默认是水平的即按行排列,如果不指定包含多少列,则网格布局只 包含一行,类似于水平的线性布局,如果指定包含多少列,则会根据列 来自动换行;如果是按列排列,则需要指定网格布局中包含多少行,否 则只有一列,类似于垂直的线性布局,如果指定包含多少行,则会根据 行来自动换列; android:layout_row:设置该控件所在网格行的序号; android:layout_rowSpan:设置该控件纵跨多少行; android:layout_column:设置该控件所在网格列的序号; android:layout_columnSpan:设置该控件横跨多少列;
本例中,仅简单实现加、减、乘、除、取余、退格和清空等功能, 单击“←”按钮实现退格功能,将刚刚输入的数字消除,单击“C”按 钮实现清空功能,一切恢复原状。此外,在执行计算过程中,还需处理 多次单击操作符、多次单击小数点、多次单击0等特殊情况。
用户单击按钮
简 易 计 算 器 业 务 流 程
是
是否第一 次单击
由于大部分按钮都是规则的,并且整体按照行列的形式摆放,因此可 考虑采用表格布局,而表格布局中不允许控件跨行,因此需要嵌套其它 布局管理器。根据最后两行的特点,选择相对布局比较方便,因此可采 用在表格布局中嵌入一个相对布局来实现计算器界面设计。
关键代码
自定义按钮样式
按钮属性设置
引用样式 按钮文字
关键代码
将数字拼接到 原有数字之后 是
是否第一次 单击操作符
否
按钮为true
是 等号无效
是否
为等号
否
标记上次是否 为数字按钮为 false,是否第一 次单击操作符 为false,记录 操作符
是否 为等号
是
计算结果并显 示,运算结束。 是否第一次单击
标记为true
否
计算上次操作 结果并显示, 同时标记上次 是否为数字按 钮为false,是否 第一次单击操 作符为false,
本章案例效果分析
一个文本编辑框单独占一行 规则的四行五列
相对布局 整体采用表格布局,内部嵌套相对布局
界面分析
界面中包含一个文本编辑框(EditText)、28个按钮(Button), 文本编辑框单独占一行,宽度为填充父容器、高度为内容包裹,边距为 10dp,颜色为#770000ff,不可编辑,包含边框。28个按钮中26个按 钮的高度为50dp,宽度为60dp,“=”按钮高度为100dp,宽度为 60dp,“0”按钮的高度为50dp,宽度为120dp。所有按钮的文本大小 为20sp,对齐方式为居中。(特殊符号:←、√、±)
③ 分别为数字按钮和运算符按钮设计单击事件处理方法。
课后思考题
思考
1. 本例通过表格布局和相对布局综合使用来实现计算器界 面,能不能通过其他布局的组合方式来实现呢?请自行 尝试实现。
2. 为了使每一行的内容水平居中,在<TableRow>标签中 设置了 android:gravity="center_horizontal",能 不能通过在<TableLayout>标签中设置 android:gravity="center_horizontal",达到同样效 果?如果不能,请说明理由。
记录操作符
简易计算器开发步骤
① 为相关数字按钮和操作符按钮添加id属性; ② 在Activity中,调用findViewById()方法根据id找到这些控件,同时为
这些控件注册单击事件监听器,本例中按钮较多可以将数字按钮放在 一个数组中,将操作符按钮放在一个数组中,通过循环遍历为其注册 事件监听器;
注意:由于网格布局是Android4.0中新增的布局,因此需
要在AndroidManifest.xml文件中将最低版本设置为14, android:minSdkVersion="14"。
网格布局(GridLayout)
android:rowCount:设置网格布局一共有多少行; android:columnCount:设置网格布局一共有多少列; android:orientation:设置网格布局中控件的排列方向,水平还是垂
简易计算器业务分析
计算器界面中的按钮可以大致分为两类:数字按钮和运算符按钮。 如果是数字按钮则要将其转换成数字,并且可以多次单击数字按钮,将 多个数字组成一个数,例如分别单击数字1、4、6按钮最后形成的数应 该是146而不是用后面的取代前面的,结果为6。如果是运算符按钮则 表明前一个数已经完成,接下来的数字形成一个新的数,当单击“=” 按钮时则在文本编辑框中显示表达式以及结果。
否
是否为 是 数字按钮 否
是
上一次是否 为数字按钮
否
这一次是否 为数字按钮
否
用该数字替换 默认的0,是 否第一次单击
操作无效, 是否第一次 单击标记仍 是
这一次是否 为数字按钮
否
标记为
为true
false,上一
是
生成一个新的 数,标记上一 次是否为数字
替换上次的 操作符
次是否为数字 按钮标记为 true。