Android--计算器小程序

来源:互联网 发布:蛤是什么意思知乎 编辑:程序博客网 时间:2024/05/21 21:46

今天是学android的第3天,感觉自己速度有点慢了,前几天学了一些常用的控件,监听器,五种布局方式,页面跳转,Activity相关知识等内容。

今天做了一个计算器,首先分解一下步骤:

1. 编写基本的布局文件:

下面是整个程序安装到手机之后的程序:


现在感觉这个布局没有布好,控件在空间上,距离上不均匀,往后的学习中我会加强练习。

这个布局采用的是LinearLayout线性布局的方式,上面的内容比较好理解,主要是下面大黄框框中的布局方式比较不好理解,它的结构是:黄框框是一个大的LinearLayout,里面有两个小的垂直布局的LinearLayout,在左边的LinearLayout中有两个水平排列的LinearLayout。

布局文件解析:http://blog.csdn.net/wangfayinn/article/details/8005358

2.优化按钮布局:

这个优化的过程是通过在res/drawable文件夹中创建几个样式文件如(shape),以构造出不同类型的图案,例如:

    

 <corners android:radius="5dp"/><!--这个表示的是圆角--><solid android:color="#556B2F"></solid><!--这个表示的是填充色--><gradient         android:startColor="#000000"        android:endColor="#ffffff"        /><!--这个表示的是过渡色--><stroke     android:width="1dp"    android:color="#0f0f0f"/><!--这个表示的是边缘线的粗细以及颜色-->
接下来,如果要设置按钮不同效果切换的话,则可以使用(selector),如:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:drawable="@drawable/ashen_bg" android:state_pressed="true"/><!--表示按钮点击下去时的颜色-->    <item android:drawable="@drawable/orange_bg"/></selector>
最后通过android:background="@drawable/white_selector"属性设置好样式即可。

3.编写业务逻辑:

业务逻辑层,要完成的内容是:两个数之间的计算,基本的排除能力(比如:遇到除数为0时,程序不会奔溃)。我是通过实现OnClickListener接口来监听事件的,下面介绍一下三种监听事件的写法:

a) 匿名内部类的实现,形式如下:

button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根//在当前onClick方法中监听点击Button的动作System.out.println("我的Button被点击了!");}});

b)独立类的写法和作用,形式如下:

button2 = (Button)findViewById(R.id.button2);button2.setOnClickListener(new MyOnClickListener(){@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根//调用父类的OnClick方法super.onClick(v);Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();}});imageButton1 = (ImageButton)findViewById(R.id.imageButton1);imageButton1.setOnClickListener(new MyOnClickListener(){@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根super.onClick(v);Toast.makeText(MainActivity.this, "imagebt1要执行", 1).show();}});
c)通过实现接口来实现监听器:

button3 = (Button)findViewById(R.id.button3);button3.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根Log.i("tag", "第三种方式实现");Toast.makeText(this, "button3被执行", 1).show();}}class MyOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {//会把按钮传给v// TODO 自动生成的方法存根v.setAlpha(0.5f);//让按钮变透明}}

计算器的具体程序我发到资源上去了:http://download.csdn.net/detail/sysstc/9465858

0 0