Android计算器布局
Android(安桌)计算器布局实现
——解决整个屏幕方案
引言:
学完了android布局的几种方式,做了一个android计算器。
我在网上搜索了这方面的资料,发现了布局都有问题,没有充满整个屏幕,只是占了一个部分。
老师的建议是:设置字体的大小是关键。但是在我设置好字体大小问题,解决屏幕问题后,发现字体居然没有居中。在靠着水平线的左边。而后使用android:gravity的这个属性,没有改变。但是后来发现,使用的TableLayout好像没有这个属性,嵌套使用了一个Layout,才解决了这个问题。
实现效果如下:
LayOut中的xml文件代码如下:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/writerinfo"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dp"
- android:textSize="@dimen/textviewsize"
- android:gravity="center_horizontal"
- android:text="@string/writer" />
- <TextView
- android:id="@+id/input"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dp"
- android:textSize="@dimen/textviewsize"
- android:text="@string/inputhint" />
- <TextView
- android:id="@+id/textView2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dp"
- android:textSize="@dimen/textviewsize"
- android:text="@string/resulthint" />
- <TableLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:stretchColumns="0,1,2,3"
- >
- <TableRow
- android:id="@+id/tableRow1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <Button
- android:id="@+id/num7"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="7" />
- <Button
- android:id="@+id/num8"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="8" />
- <Button
- android:id="@+id/num9"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="9" />
- <Button
- android:id="@+id/divide"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="/" />
- </TableRow>
- <TableRow
- android:id="@+id/tableRow2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <Button
- android:id="@+id/num4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="4" />
- <Button
- android:id="@+id/num5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="5" />
- <Button
- android:id="@+id/num6"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="6" />
- <Button
- android:id="@+id/ride"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="*" />
- </TableRow>
- <TableRow
- android:id="@+id/tableRow3"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <Button
- android:id="@+id/num1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="1" />
- <Button
- android:id="@+id/num2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="2" />
- <Button
- android:id="@+id/button11"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="3" />
- <Button
- android:id="@+id/sub"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="-" />
- </TableRow>
- <TableRow
- android:id="@+id/tableRow4"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <Button
- android:id="@+id/num0"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="0" />
- <Button
- android:id="@+id/point"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="." />
- <Button
- android:id="@+id/add"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="+" />
- <Button
- android:id="@+id/equal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@dimen/buttonsize"
- android:text="=" />
- </TableRow>
- </TableLayout>
- <Button
- android:id="@+id/clean"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:textSize="@dimen/buttonsize"
- android:text="clean" />
- </LinearLayout>
- <dimen name="textviewsize">25sp</dimen>
- <dimen name="buttonsize">45dp</dimen>
注:如果读者在复制时没有铺满整个屏幕,请更改
dimens文件中要添加的两个参数。
Android计算器布局的更多相关文章
- Android计算器简单逻辑实现
Android计算器简单逻辑实现 引言: 我的android计算器的实现方式是:按钮输入一次,就处理一次. 但是如果你学过数据结构(栈),就可以使用表达式解析(前缀,后缀)处理. 而这个方式已经很成熟 ...
- 【腾讯Bugly干货分享】Android动态布局入门及NinePatchChunk解密
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7ff5d53bbcffd68c64411 作者:黄进——QQ音乐团队 摆脱 ...
- Xamarin.Android之布局文件智能提示问题
一.前言 看到有人问关于xamarin.android的布局没智能提示问题(VS 2015),当然,写布局这东西没提示这是一件相对痛苦的事 ,所以这里就提供一个解决的方案! 二.解决方案 想要智能提示 ...
- android—-线性布局
android五大布局之线性布局. 1.线性布局的特点:各个子元素彼此连接,中间不留空白 而今天我们要讲解的就是第一个布局,LinearLayout(线性布局),我们屏幕适配的使用 用的比较多的就是L ...
- Android基本布局
android基本布局有三种:LinearLayout,RelativeLayout,FrameLayout. 一.LinearLayout 1,这是一种垂直布局(或者水平布局),可以通过下面这一句来 ...
- android layout布局属性
参考:http://blog.csdn.net/msmile_my/article/details/9018775 第一类:属性值 true或者 false android:lay ...
- Android 学习第10课,Android的布局
Android的布局 线性布局
- Android 优化布局层次结构
前面介绍过使用HierarchyViewer和Android lint来优化我们的程序,这一篇算是总结性的,借助一个小例子来说用怎么优化应用布局.这个例子是android官网给出的,作者也当一把翻译. ...
- Android 五大布局
Android 五大布局: FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),Table ...
随机推荐
- 【Linux学习】Linux用户管理2—用户配置文件
Linux用户管理2-用户配置文件 /etc/passwd: 存放系统用户的文件 输入 vi /etc/passwd /etc/shadow: 保存保密文件 /etc/group: 群组文件 输入 v ...
- 13.详解oauth2授权码流程
13.详解oauth2授权码流程 把登陆系统单独独立出来,可以给自己写的微服务用,也可以给第三方的系统调用我们的服务 显式的和隐式的,两种方式,
- GIL 已经被杀死了么?
GIL 已经被杀死了么? 本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q ...
- HTML基本标签元素
HTML: 超文本标记语言(HyperText Mark-up Language ) 1.作用:写网页结构 2.HTML不区分大小写,建议小写 3.文件后缀 .html 或者 .ht ...
- 阻塞调用ShellExecute函数
SHELLEXECUTEINFO si;ZeroMemory(&si, sizeof(si));si.cbSize = sizeof(si);si.fMask = SEE_MASK_NOCLO ...
- LED与OLED的区别:
LED与OLED的区别: led和oled的发光原理是一样的,只 不过区别是用的材料不一样led用的是金属材料,而oled用的是有机物材料. OLED不需要背光源,自己本身会发光,是采用发光二极管阵列 ...
- unity3d easytouch教程
http://www.taikr.com/group/6/thread/1987 说一说easytouch的简单使用方法,和移动平台上的rpg游戏一样,我们肯定也不陌生,我们经常玩游戏的时候用的都是虚 ...
- springcloud2 (三) 服务治理Eureka及其实现原理
代码地址:https://gitlab.com/showkawa/architect/tree/master/microservice/eurake 基于springcloud2分析eurake知识点 ...
- centos 7.3 安装vmtools,解决无法编译共享文件夹模块
环境说明: vmware 12.5.0 build-4352439 centos 7.3.1611 64位,内核版本:Linux version 3.10.0-514.16.1.el7.x86_6 ...
- 快速对接payjs的个人支付接口(收银台模式)
近期在了解个人支付接口,希望能解决我在微信上支付的问题.找了很多平台对比再三,感觉payjs比较专业,其它多是模仿payjs的东西.同时支持支付宝和微信,由于本人支付宝还没开通(需要有一定流量才给开通 ...