Android--计算器小程序

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

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

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

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


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

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

布局文件解析:http://blog.youkuaiyun.com/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() {
			@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.youkuaiyun.com/detail/sysstc/9465858

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值