Android--计算器小程序

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

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

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

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

Android--计算器小程序_第1张图片

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

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

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

2.优化按钮布局:

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

    

 



接下来,如果要设置按钮不同效果切换的话,则可以使用(selector),如:



    
    

最后通过android:background="@drawable/white_selector"属性设置好样式即可。

3.编写业务逻辑:

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

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

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

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

		button2 = (Button)findViewById(R.id.button2);
		button2.setOnClickListener(new MyOnClickListener(){
			@Override
			public 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(){

			@Override
			public 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);
	}
	@Override
	public void onClick(View v) {
		// TODO 自动生成的方法存根
		Log.i("tag", "第三种方式实现");
		Toast.makeText(this, "button3被执行", 1).show();
	}
}
class MyOnClickListener implements OnClickListener{

	@Override
	public void onClick(View v) {
		//会把按钮传给v
		// TODO 自动生成的方法存根
		v.setAlpha(0.5f);//让按钮变透明
	}
}

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

你可能感兴趣的:(Android)