Android 计算器

首先在activity_main.xml加入一个EditText

通过xml的方式来沈成一个图像
在drawable中新建一个white_bg.xml文件,同时选择一个shape标签
corners设置圆角

<corners android:radius="5dp"/>

gradient设置颜色渐变

<gradient
        android:startColor="#FFFFFF"
        android:endColor="#00FFFF"
        />

stroke设置边框的宽度和颜色

<stroke
        android:color="#FFFFFF"
        android:width="1dp"
        />

将white_bg.xml部署到activity_main.xml的EditText的android:background属性中

android:background="@drawable/white_bg"

但是我们现在要做的计算器的EditText有特定的要求,所以注释掉white_bg.xml里面的gradient和stroke属性,添加solid属性。

<solid android:color="#FFFFFF"/>

需要对当前这个activity更改一下背景颜色为黑色并且没有标题栏,所以需要修改一下AndroidManifest.xml中activity的android:theme。

android:theme="@android:style/Theme.Black.NoTitleBar"

这里遇到了一个问题,就是在AndroidManifest.xml中修改了activity的android:theme属性后调试的时候程序出现闪退的情况,原来是因为我的MainActivity类继承自ActionBarActivity,将MainActivity类改为继承自FragmentActivity类即可解决这个问题。

但是EditText中的内容是不可以编辑的,并且文字需要显示在右下方,所以需要设置EditText的editable和gravity属性

android:editable="false"
android:gravity="right|bottom"

然后就是繁琐的进行Button的布局的管理,因为这里用的是LinearLayout,所以要特别注意layout_weight的使用

android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!
Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。这样weight就可以理解为占比了。

修改按钮样式
修改按钮默认颜色白色,点击后颜色红色。
修改“=”键默认颜色绿色,点击后颜色蓝色。
在drawable/目录下新建集中不同颜色对应的xml文件(并在创建时选择shape)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="5dp"/>
    <solid android:color="#FFFFFF"/>
</shape>

white_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="5dp"/>
    <solid android:color="#FFFF00"/>
</shape>

yellow_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="5dp"/>
    <solid android:color="#00FF00"/>

</shape>

green_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="5dp"/>
    <solid android:color="#0000FF"/>

</shape>

blue_bg.xml

在drawable/目录下再创建两个样式xml文件(并在创建时选择selector),一个样式要求在没有按下时显示白色,按下时显示绿色。
    <item android:drawable="@drawable/white_bg" android:state_pressed="false" />
    <item android:drawable="@drawable/green_bg" android:state_pressed="true" />
另一个样式要求在没有按下时显示黄色,按下时显示蓝色。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/white_bg" android:state_pressed="false" />
    <item android:drawable="@drawable/green_bg" android:state_pressed="true" />

</selector>

white_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/yellow_bg" android:state_pressed="false" />
    <item android:drawable="@drawable/blue_bg" android:state_pressed="true" />
</selector>

yellow_selector.xml

最后给每一个button添加“android:background="@drawable/white_selector"”实现样式的转换。

时间: 2024-10-02 21:37:20

Android 计算器的相关文章

Android计算器界面布局

Android计算器界面图: 所定义的XML布局文件,主要用到的是TableLayout: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heigh

[ 转自 果壳 原著matrix67 ]Android计算器低级错误?都是二进制惹的祸!

Android 计算器惊现超级大 bug!在 Android 的计算器程序里输入 14.52 - 14.49,计算器竟然说它等于 0.0299999999!其实,这已经是计算机的老毛病了.计算机用二进制来表示数,将会不可避免地产生误差. 听说了 Android 的超级大 bug,我立即在自己的 HTC Hero 上试了一下,果然正如众人所说, 14.52 - 14.49 = 0.0299999999.稍作试验便可发现,一些更为简单的算式也会出现类似的问题,例如在 Android 计算器中输入 1

Android计算器APP练习(1)--- 界面

Android Studio 2.3.2 .参考文章:http://blog.csdn.net/like_program/article/details/51813632 1. 新建工程 MyCalculator,一路下一步,均采用默认值. 2. 按照要求修改三个xml文件内容.很多地方工程名字不一样,改成自己的名字. 3. 按照步骤修改Activity_main.XML文件,遇到问题: android:singleLine="false" 过时 暂时处理方式:删掉此行. 4. 按照步

Android计算器界面

1 <?xml version="1.0" encoding="utf-8"?> 2 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 an

Android 计算器制作 2.注册View 构建函数

鄙人新手 整了 快两天 终于搞定了.. 1.首先是MainActivity 中 在Oncreate函数中 注册 2.按+ 或者 - 号 来分成两大字符串 s1 和 s2 再将s2 分为更小的s1 和 s2 直到 s2不包含+ 或者 -号 思路就是这样,没用递归,递归速度太慢,也不擅长用递归. 3.就是找各种Bug 还有装饰 基本达成目标 和自己手机上安卓的自带计算器基本一样. 项目代码如下: 链接: 链接: http://pan.baidu.com/s/1sj65nop 密码: 926r 看到还

Android -计算器的实现

Android 科学计算器 2014年12月1日15:42:10by tops 思路: 1.布局 主布局使用LinearLayout,走向为垂直使用TextView当作显示屏,显示计算结果使用TableLayout当作输入表格TableRow是每一行,其中包含四个按键善用IDE的视图来设计布局也是很节省时间的加减乘除的英语单词 2.代码 找到TextView,给按钮直接添加setOnClickListener事件在MainActivity中实现监听接口并复写onClick方法,在方法里使用swi

android计算器

一:引言    目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能.二:需求分析 状态定义:能满足基本的数学运算.具体要求如下: 

结对实验报告-android计算器设计

 一:引言  目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能. 二:需求分析 状态定义:能满足基本的数学运算.具体要求如下:

最容易理解的Android计算器实现

package com.example.Calcuator; import com.wk.cal.CalAdd; import com.wk.cal.CalDiv; import com.wk.cal.CalMul; import com.wk.cal.CalSub; import com.wk.cal.Calculator; import android.app.Activity; import android.os.Bundle; import android.view.View; impo