向英语流利说投递简历,HR 打来电话说,需要先写笔试题目,再决定是否邀请我去面试。笔试题目发到了我的邮箱,我完成笔试之后,将代码上传到 GitHub 。
现在,花了一些时间也算是完成了这4个题目,虽然说还有很多地方需要优化,但是这个毕竟是笔试题目。待以后有空再来优化吧。
下面是完整的题目信息,取自发送给我的电子邮件。
1.从小米天气服务器获取数据 解析并保存数据,解析后请显示下面两个数据
forecast. city
realtime. weather
(注:重点考虑访问Server,解析过程,保存本地过程各环节的方法优化)
接口可以用下面这个
http://weatherapi.market.xiaomi.com/wtr-v2/weather?cityId=101010100&imei=529e2dd3d767bdd3595eec30dd481050&device=pisces&miuiVersion=JXCCNBD20.0&modDevice=&source=miuiWeatherApp
2.闯关过场倒计时动画
要求,出现->倒计时->消失 具体过程见英语流利说软件 闯关
3.加载图片
要求:随机顺序加载三张网络图片(图片任意),要求宽度固定(具体屏幕两边10dp),高度随图片动态调整,图片需要完整显示。(注:重点要完成图片动态调整,图片不能变形!)
具体请参考流利吧帖子详情中的图片
图片地址1:
http://llss.qiniudn.com/forum/image/525d1960c008906923000001_1397820588.jpg
图片地址2:
http://llss.qiniudn.com/forum/image/e8275adbeedc48fe9c13cd0efacbabdd_1397877461243.jpg
图片地址3:
http://llss.qiniudn.com/uploads/forum/topic/attached_img/5350db2ffcfff258b500dcb2/_____2014-04-18___3.52.33.png
4.取词
长按英语单词放大镜取词,取到单词后toast结果,具体见英语流利说,修炼,长按单词
以上题目中如果有某些题短时间无法顺利完成请秒速原因以及对你的而言的难度等级 (1~5级 )
1 没难度,没兴趣。
2 一般,有点困不想做了。
3 一点小难度,需要话点时间 但是没精力 没动力去做。
4 难的,需要好好考虑一下,我可以实现。
5 困难, 没想好怎么做 觉得自己还需要深入学习一下。
题目1,无法考察的是 HTTP 请求和 Json 解析,侧重点可能就是 HTTP 请求的优化以及缓存策略。由于已经发送电子邮件咨询是否可以使用三方的 HTTP 请求库以及图片加载库,也得到了许可。所以,我这里的解决办法直接就是使用 Volley
,因为 Volley
在 HTTP 请求方面能实现题目要求,而且,只要设置可以缓存,就会将返回信息进行文件存储。
题目2,纯粹的动画效果,使用 Property Animation
完成。
题目3,主要考察的是 ListView 中
,图片宽度满屏,高度根据比例动态调整。默认的如果设置ImageView
的宽度为 match_parent
,高度为 wrap_content
,会导致滑动时,出现图片显示不全的问题。一般的解决办法是,图片对应的 URL 地址中保存有图片大小的尺寸,为 ImageView
异步显示这张图片之前,先按照比例设置 ImageView
的大小。不过,题目中给出的图片 URL 不包含图片尺寸的信息,所以,只能在将图片转化成 Bitmap
这一步时,设置 Bitmap
的尺寸。这里的实现,使用 Picasso
这个图片异步加载库,自动解决这个问题。
题目4,考察两点,放大镜和在一个 TextView
中每一个单词的点击效果。放大镜就是纯粹的将 View
的DrawingCache
的指定区域进行放大。一个 TextView
中每一个单词均要有长点击和选中效果,借助ClickableSpan
,实现过程中,选中的单词根据触摸滑动不停的变化,借助于 LinkMovementMethod
来获取当前触摸位置的 ClickableSpan
。