文章目录

分享一个仿《车来了》公交线路提示的自定义组件。

先上效果图:

效果图

github地址:https://github.com/jacpy/BusLine

用工具分析了官方的实现,使用的是google提供的v4包中的RecycleView来实现的,所以会看到各种View叠加。

上面View实现方式是使用自定义View的方式,使用了绘图方面的API和滑动手势控制,还实现了站点点击事件控制。所以整个就一个View,也就不存在View回收的问题。另外要注意在View中调用次数比较频繁的方法中要注意性能,比如onDraw()方法中,刷的次数非常频繁,特别是在滑动的时候,而这个方法又是一个关键的处理方法,计算特别多,所以这里要注意,否则方法运行时间超过16ms就会造成卡顿。

经过测试:在2013年的机型MOTO G XT1032机子上运行,同时刷新96个公交站点数据,onDraw()方法耗时平均7ms左右。

后面会写文章分析下实现方式及遇到的坑和解决方案。

文章目录