你的位置:首页 > 操作系统

[操作系统]Android生猛上手,先写个拨号器。


  并不打算按照四大组件开始系统性专攻,而是立马开始做应用,初步计划刷新手机上的所有常用软件。

  鄙人常玩撸啊撸,手机中难免多了些LOL盒子,官方助手,视频app等工具。自始2011年初最为率先在同学们中崛起android智能机的第一个屌丝,999块钱买了一台华为U8500.那个时候同学们还在用诺基亚!那照片拍的哟,贼清晰,而我仅仅是打算为了群发飞信,短信费花不起,我每天还得充当个班长的角色。而我也借着诺基亚超强的像素,记录了我大学里几年的美好时光。自此,用了Android开始,便一路见证了各种流氓app在我手机上拼了老命的获取短信,通讯录,通话记录,聊天记录,上网记录,并不定时的给我推送些黄段子,中大奖,四六级保过等各种高科技信息。心生此念:搞大数据的,其实都是流氓,包括爬虫,后者以后有时间要重点提一提。当然我看似站在道德的制高点,遵循着一个程序员应有的优良素质,可是面对各种奇奇怪怪的老板,这种事情也要慎重去做,毕竟为了生活,不是生存。

  遂决定,Android开发就由此开始吧,到了哪里该用到什么知识再去探索。

  边写博客,边动手:

  拨号器,给我的想法是应该设计成这样:当然跟正常的比还差了点,不过我很少会用到*和#,这里就不加进去了,主要是为了实现打电话功能。绿色的算是通话记录,电话号码完全是我瞎编的,出现骚扰的情况,请联系我打马赛克。

 

最后,经过我的改造,变成了这个样子:

把他做出来其实废了我不少力气,这个从某种程度上来说跟Java中的swing和AWT不是太一样。

电话号码输入框:EditText

请输入电话号码(点击自动消失):这里我用到了EditText的hint属性

四条通话记录:其实是四个Button

样式: 当中用到的所有Button全部都用到了这个属性,所以看起来不像Button

1234567890呼叫删除等都是Button,但是这几个按钮排列起来缺把我给忙了够呛,真个activity用了线性布局,嵌套了表格布局,但是表格布局没有列操作,可能有,但是我没查到,这样写了四行,发现全都挤到了界面的左上角。这个问题还是想了很久的,附带着另外一个类似的问题,Button上的text全都在左上角,这个我觉得设置位置应该有方法,果然google到了这条:android:gravity="left|center"

left|center就是左边中间,left就是左边,恍然大悟,就这样,类似的把表格也这样设计了,但是表格还是紧凑着堆在左边界面部分。实在没办法,我就把Button的长度给写死了,三个Button正好填充了整行,所以排列下来才比较美观。这样,只能匹配了我的小米2S,其他机型的渲染情况就比较奇葩了。搜寻信息的时候看到自定义键盘,不过看着感觉我的出路比较大,我是写死在界面上的,人家是从底下弹出来的。我只是想知道,横向怎么操作表格布局。自定义键盘以后有时间拓展。

功能还是有待完善的,我只是写了个看起来像一点的布局而已。

随后进行的就是各种按钮的监听了,监听到点击操作时,就把EditText加一个值,这里开始只想到了setText方法,于是写了很麻烦的一大堆,点击事件触发,EditText先getText,然后执行字符串拼接,再继续赋值setText,后来突然想起来StringBuffer的那个append,删除功能的实现用了这个字符窜剪切str.substring(0,str.length()-1);

下面就是取值开始打电话了,这里边就拓展到了Intent,这其实就逐渐开始要接触其他组件了,调用打电话功能,但是要获取权限,就注册了一下,就好使了,这软件就完事了,其他功能像通话记录等,读取电话本等,我还没有做。

但是执行了打电话功能之后就发现还是跳转到了系统自带的打电话界面,这个我还没有想好怎么处理,应该是底层操作驱动硬件以及通信之类的功能,想了想,先不看了。

把整个制作过程写出来其实比贴代码要好的多,做完了之后我感觉到,仅仅明白如何调用系统功能,即使全部功能都可以很快的实现,那我觉得,我的路还很长。

以后会用到Android studio,今天看到google不再支持eclipse了。而编译源代码是我早晚会遇到的事,所以上一篇博客搭建了Ubuntu还是有一点点作用的。慢慢移植到Ubuntu上用studio开发了。

另外,在家里和公司两台电脑上都配置了开发环境,但是把写好的工程考来考去还是太麻烦了。其实早在很久前就注册了Git,但是没怎么用,一直看别人的代码来着,我想,博客的标签应该加一组:Git

工程的所有源码,该贴到博客上的会贴,整个工程以后都会上传到Git上开源,希望大家能够多多指导。

学得越多,发现,会的越少。