TweenAnimation和PropertyAnimation
- TweenAnimation通过改变canvas的martix来实现动画,在View的draw过程中调用Animation.getTransformation获得动画
- PropertyAnimation直接设置View的属性值,因为随PropertyAnimation添加了很多属性值的setter/getter,但实际上通过改变canvas的martix来实现动画
- 由于在HoneyCom后ViewGroup分配触摸事件时考虑了PropertyAnimation动画的影响,所以PropertyAnimation引起的View变化能够影响View触摸事件的分配。主要是在View.getInverseMatrix()方法内处理。
- NineOldAndroids在HoneyCom之前的版本实际上与TweenAnimation的实现原理一直,所以基于第3点,NineOldAndroids在HoneyCom之前的版本上的PropertyAnimation动画不能反映到触摸事件响应上。
- 用Camera类来做3D变换
- mScrollX和mScrollY只改变内部绘制位置, canvas.translate(mLeft - sx, mTop - sy),所以computeScroll()在绘制过程中调用