Android 动画相关面试总结

动画总结:Android 动画总结

面试题持续更新中~~

1 动画分类

1.1 动画类型有哪几种?它们的区别在哪里?

两种。视图动画、属性动画

视图动画包括:逐帧动画(frame-by-frame animation)、补间动画(tweened animation)

属性动画包括:ValueAnimator、ObjectAnimator 、AnimatorSet

区别:视图动画只能作用于View,而属性动画能作用于任何对象。

1.2 两种动画类型它们的优缺点分别是什么?

视图动画

优点:使用简单,并且设置需要的时间较短。

缺点:

只能对公开对象的部分添加动画效果(例如:可以对View缩放和旋转添加动画,但无法对背景颜色这样做);
只能对绘制视图的位置进行修改,而不能修改实际的视图本身(例如:View位移到了上方,但是其点击区域还是在原来的地方)。

属性动画

优点:相比视图动画,使用相对复杂,设置需要的时间更长。

缺点:

可以为任何对象(视图和非视图)的任何属性添加动画效果

能够修改实际对象本身

1.3 为什么视图动画只能修改视图而无法改变自身属性?

视图动画是通过父view来不断调整子view的画布canvas坐标系来实现的,发生动画的其实是父View而不是该view。所以补间动画其实只是调整了子view画布canvas的坐标系,其实并没有修改任何属性,所以只能在原位置才能处理触摸事件。

2 视图动画

2.1 帧动画在使用时需要注意什么?

1.OOM问题 - 这个问题主要出现在帧动画中,当图片数量较多且图片较大时就容易出现OOM,这个在实际开发中尤其注意,尽量避免使用帧动画。

2.内存泄漏 - 在属性动画中有一类无线循环的动画,这类动画需要在Activity退出时及时停止,否则将会导致Activity无法释放从而造成内存泄漏,通过验证后发现View动画并不存在此问题。

3.View动画的问题 - View动画是对View的影像做动画,并不是真正地改变View地状态,因此有时会出现动画完成后View无法隐藏地现象,即setVisibility(View.GONE)失效了,这个时候只要调用view.clearAnimation()清楚View动画即可解决此问题。

4.硬件加速 - 使用动画的过程中,建议开启硬件加速,这样会提高动画的流畅性。

2.2 帧动画如果避免OOM?

减少帧数、压缩图片

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值