Android--计算器小程序
2016-03-18 22:36
471 查看
今天是学android的第3天,感觉自己速度有点慢了,前几天学了一些常用的控件,监听器,五种布局方式,页面跳转,Activity相关知识等内容。
今天做了一个计算器,首先分解一下步骤:
1. 编写基本的布局文件:
下面是整个程序安装到手机之后的程序:
现在感觉这个布局没有布好,控件在空间上,距离上不均匀,往后的学习中我会加强练习。
这个布局采用的是LinearLayout线性布局的方式,上面的内容比较好理解,主要是下面大黄框框中的布局方式比较不好理解,它的结构是:黄框框是一个大的LinearLayout,里面有两个小的垂直布局的LinearLayout,在左边的LinearLayout中有两个水平排列的LinearLayout。
布局文件解析:http://blog.csdn.net/wangfayinn/article/details/8005358
2.优化按钮布局:
这个优化的过程是通过在res/drawable文件夹中创建几个样式文件如(shape),以构造出不同类型的图案,例如:
3.编写业务逻辑:
业务逻辑层,要完成的内容是:两个数之间的计算,基本的排除能力(比如:遇到除数为0时,程序不会奔溃)。我是通过实现OnClickListener接口来监听事件的,下面介绍一下三种监听事件的写法:
a) 匿名内部类的实现,形式如下:
b)独立类的写法和作用,形式如下:
计算器的具体程序我发到资源上去了:http://download.csdn.net/detail/sysstc/9465858
今天做了一个计算器,首先分解一下步骤:
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
相关文章推荐
- Discuss!X3.2 绑定微信
- 微信多客服
- 通过百度BAE搭建微信二次开发的服务(2)
- Android小程序-标准体重计算器
- 微信(WeChat web page)
- 微信(WeChat web page)
- 微信开发解决if...else..的臃肿
- 贪吃蛇的小程序
- 微信统一订单
- 微信公众平台java开发详解(工程代码+解析)
- wechat 报警的实现方法
- 50、微信-朋友圈AlbumActivity
- 49、微信-发现Fragment_Discover
- 实现分享到微信,微博,朋友圈
- 48、微信-订阅号列表PublishUserListActivity
- 47、微信-发起群聊AddGroupChatActivity
- 46、微信-群聊列表
- ios接入微信sdk
- 怎么用HTML写微信弹幕效果
- 微信支付遇到的坑们