您的位置:首页 > 移动开发 > 微信开发

Android--计算器小程序

2016-03-18 22:36 393 查看
今天是学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() {
@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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: