本人是一个刚刚毕业的应届大学生,领完毕业证在家学完驾照之后匆匆忙忙就来到北京应聘了人生中的第一份工作——安卓开发工程师。最近经理让我模仿他着手开发的小程序软件做一个安卓版的,当然也是简易很多,只需要一个积累金币点击收取之后重新积累金币的一个功能,以下是经理的小程序页面
当时刚接触的时候,乍一看,哇好难啊,这四个方块布局咋弄,哇,为啥不上面俩大的下面俩小的,哇,这摇钱树的textview,imageview和progressbar又咋布局在树的imageview上的...然后自己做起来,嗯?真香,果然经理是基于我的基础做的,新手自己看起来挺难的但是做起来还可以,多百度多问就好了。
最后自己尝试做出的效果如下:
因为是个自己试验的程序,所以时间就用六十秒代替俩小时,方便观察出成果,页面布局使用了三层布局,其中蓝色背景、功能模块和最下方广告图使用了水平LinearLayout,而功能模块里好友对战、排行榜和摇钱树、排位赛另用两个垂直LinearLayout,在摇钱树的图片中又使用FrameLayout来显示金币、进度条。新手做过程中肯定会碰到许多坑,来总结一下我做的过程中遇到的那些坑:
1、点击事件发生后金币和进度条归零但摇钱树图片不变。 解决方案:在onclick方法中将图片点击事件setBackgroundResource改为setImageResource。
2、点击事件发生后金币和进度条重新开始计算后一会儿程序闪退。 解决方案:原因是点击事件的赋值长度不足,因此我们要在点击事件最后加上count = 0。
3、progressbar进度条随进度增长颜色渐变,但是进度增长过快往往计时未到而进度条已经渐变完成。 解决方案:因为progressbar用的少,progressbar和时间交互写的有问题,我就把分开了,时间走六十秒但是不跟进度条关联,重新设置进度条用六十秒时间走到一百就行了。
另外有两个我经理教我的小知识在这里也分享下,我刚开始使用摇钱树图片随时间变化是这样写的,比较的繁复:
然后我经理帮我改了一下:
于是代码简洁很多。另一点大家熟悉AS和谷歌可能会问为啥不用ConstraintLayout,对此我的回答是:别问,问就是经理说的,我经理说的都对,听就完事了!!!哈哈开个玩笑,其实ConstraintLayout的确是很方便,直接在页面拖拉拽就完事了,但是代码很杂乱,可能咱么新手做完回头一看就蒙了不知道啥对啥了,所以咱们新手入门建议多用其他基础布局来做xml,方便加深理解,等熟悉了再用ConstraintLayout也不迟。
本期文章就结束了,其中有问题的地方欢迎大家指出来哦,其实程序员还挺有意思的,就是掉毛,掉毛,掉毛!!!后面还得加强学习!大家共勉(*^__^*)
网友评论