不务正业的彩蛋
啊,总之就是考完一门巨难的抽象代数之后想浪一浪……然而还有四门考试……
过去两三周(这周复习考试)主要的功夫花在了写 pkurunner 的一个彩蛋上汗。大概意思是给一个 2.5D 的地图,上面有一些标签点可以走近点开来读,也可以在某个位置上传。
具体实现要克服的问题主要是前后端接口(没错这块后端是我写的= =),标签在地图上的显示,地图的旋转和“压扁”(真不知道怎么形容)。
嗯……要具体说一些有趣的故事的话……一开始以为为了显示并与标签交互,不用什么框架的话可能就要上 openGL 了,后来脑洞一开……直接用 ImageView
开数组动态加到 RelativeLayout
上去。
然后一件比较讨厌的事情是高德地图 2D 版是不能旋转的(而且旋转 mapView
视觉感觉……不是很好),所以所谓的底层“地图”其实是一个被旋转的 svg 图像。但是呢,在旋转一个 ImageView
的时候 rotate 和 scale 的顺序是被指定的,所以还需要一个 Matrix
帮忙先旋转再压缩,这样就可以做出转来转去或者调整俯仰角了。
最后吐槽一下高德地图 SDK 的设计:计算距离的时候如果没缓存的话需要不停生成 LatLng
对象,但是这个类的实例对象似乎很占空间,大概每两秒钟就 GC 一次……简直不能忍受,只能首先各种缓存,避免实例化这个类。