一、动画文件存放的位置
在androidstudio中,res文件夹下anim文件夹和animator文件夹,这两个文件夹用于存储动画。
anim文件夹
1.anim文件夹下存放tween animation(补间动画)和frame animation(逐帧动画)
2.xml文件里只有scale、rotate、translate、alpha、set五个标签
3.在代码中使用AnimationUtils.loadAnimation()方法加载
4.使用View.setAnimation(Animation)为View加载动画,使用View.startAnimation()开启动画
animator文件夹
1.animator文件夹下存放property animation,即属性动画
2.xml文件里有animator、objectAnimator和set三个标签
3.在代码中使用AnimatorInflater.loadAnimator()方法加载动画
4.使用Animator.setTarget(View)为View加载动画,使用Animator.start()开启动画
以上知识点来源:
[https://blog.csdn.net/u014611408/article/details/96482832]
[https://blog.csdn.net/weixin_34342578/article/details/92474408]
二、动画分类

逐帧动画:它的原理就是将一张张单独的图片连贯的进行播放,从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式。(即一张张图顺序播放)
补间动画:分为四种形式,分别是 alpha(淡入淡出),translate(位移),scale(缩放大小),rotate(旋转)。补间动画只能够作用在视图View上,即只可以对一个Button、TextView、甚至是LinearLayout、或者其它继承自View的组件进行动画操作,但无法对非View的对象进行动画操作。
属性动画:是对于对象属性的动画。因此,所有补间动画的内容,都可以通过属性动画实现。
补间动画和属性动画的区别:
补间动画中,虽然使用translate将图片移动了,但是点击原来的位置,依旧可以发生点击事件,而属性动画却不是。因此我们可以确定,属性动画才是真正的实现了view的移动,补间动画对view的移动更像是在不同地方绘制了一个影子,实际的对象还是处于原来的地方。
当我们把动画的repeatCount设置为无限循环时,如果在Activity退出时没有及时将动画停止,属性动画会导致Activity无法释放而导致内存泄漏,而补间动画却没有问题。因此,使用属性动画时切记在Activity执行 onStop 方法时顺便将动画停止。
xml 文件实现的补间动画,复用率极高。在Activity切换,窗口弹出时等情景中有着很好的效果。
使用帧动画时需要注意,不要使用过多特别大的图,容易导致内存不足。
内容详解
1、Carson_Ho : Android 属性动画[https://www.jianshu.com/p/2412d00a0ce4]
2、启舰:Animation动画详解[https://blog.csdn.net/harvic880925/column/info/harvic2animation]
3、guolin:Android属性动画[https://blog.csdn.net/guolin_blog/article/details/43536355]
三、应用
在一个Activity中切换fragment的动画效果
努力深耕Android的小透明
[https://www.jianshu.com/p/c8bf0d13963e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation]
网友评论