动画分为两大类:视图动画、属性动画;视图动画中包含补间动画和逐帧动画。
1.补间动画(Tween Animation):指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图片的变换从而实现动画效果。主要有scale、alpha、Translate、Rotate四种效果。
注意:只是在视图层实现了动画效果,并没有真正的改变View的属性。
view移动的时点击事件还在原来的位置
2.属性动画(Property Animation):通过不断的改变view的属性,不断重绘而形成的动画效果,相比视图动画view的属性是被真实的改变了的。
view移动点击事件也跟着移动
3.帧动画(Drawable Animation):Frame动画,指通过指定每一帧的图片和播放时间,有序的进行播放而形成的动画效果。
总结:
所以补间动画对view的移动是画像在不同的位置绘制了一个影子实际的对象还在原来的位置;属性动画才是真正的实现view的移动。
当把动画的repatcount设置为无限循环时,如果在Activity退出时没有及时的停止动画,属性动画会导致Activity无法释放而导致内存泄露,而补间动画没有问题。
xml文件实现补间动画复用率极高,例如:Activity切换串口弹出等。
使用帧动画时注意不要使用过多的特别大的图片容易内存不足。
网友评论