《在《线性贝塞尔曲线的简单说明》这篇博文中简单介绍了贝塞尔曲线在android里简单的应用,文章开头说这些有什么用呢?跟属性动画完全不搭边啊!昨天晚上自己仔细研究了下属性动画KeyFrame的源码,发现基本的算法跟《贝塞尔曲线简单说明》这篇博客写的差不多,所以对有关具体算法的说明还请读者参考《贝塞尔曲线的简单说明》这篇博文。
至于为什么会想到阅读属性动画的源码,其实原因也很简单:在自己重构代码的过程中,总感觉自己项目架构写的不是很优雅,扩展性不是很强,而且结构混乱,就想分析分析这个源码看看别人是怎么组织项目架构的,以前研究Gson的源码也是如此原因。通过分析属性动画的源码,确实也体会到了不少的东西,甚至有的没办法用语言描述出来。扯得有点多了,闲言少叙,书归正传.
属性动画的核心原理也很简单: 1)传入你要操作的对象,即目标对象,也即是Target. 2) 传入你要操作的属性propertyName 3) 通过反射机制,不断的调用Target对象的setPropertyName方法:当然setPropertyName方法的具体实现完全由咱们IT Monkey自己定制。
简单原理叙说完毕,那么就开始开车了: